Giter Club home page Giter Club logo

fairmq's Introduction

FairMQ

license DOI OpenSSF Best Practices fair-software.eu Spack package

C++ Message Queuing Library and Framework

Docs: Book

Find all FairMQ releases here.

Introduction

FairMQ is designed to help implementing large-scale data processing workflows needed in next-generation Particle Physics experiments. FairMQ is written in C++ and aims to

  • provide an asynchronous message passing abstraction of different data transport technologies,
  • provide a reasonably efficient data transport service (zero-copy, high throughput),
  • be data format agnostic, and
  • provide basic building blocks that can be used to implement higher level data processing workflows.

The core of FairMQ provides an abstract asynchronous message passing API with scalability protocols inspired by ZeroMQ (e.g. PUSH/PULL, PUB/SUB). FairMQ provides multiple implementations for its API (so-called "transports", e.g. zeromq and shmem (latest release of the ofi transport in v1.4.56, removed since v1.5+)) to cover a variety of use cases (e.g. inter-thread, inter-process, inter-node communication) and machines (e.g. Ethernet, Infiniband). In addition to this core functionality FairMQ provides a framework for creating "devices" - actors which are communicating through message passing. FairMQ does not only allow the user to use different transport but also to mix them; i.e: A Device can communicate using different transport on different channels at the same time. Device execution is modelled as a simple state machine that shapes the integration points for the user task. Devices also incorporate a plugin system for runtime configuration and control. Next to the provided devices and plugins the user can extend FairMQ by developing his own plugins to integrate his devices with external configuration and control services.

FairMQ has been developed in the context of its mother project FairRoot - a simulation, reconstruction and analysis framework.

Installation from Source

Recommended:

git clone https://github.com/FairRootGroup/FairMQ fairmq_source
cmake -S fairmq_source -B fairmq_build -GNinja -DCMAKE_BUILD_TYPE=Release
cmake --build fairmq_build
ctest --test-dir fairmq_build --output-on-failure --schedule-random -j<ncpus>
cmake --install fairmq_build --prefix $(pwd)/fairmq_install

Please consult the manpages of your CMake version for more options.

If dependencies are not installed in standard system directories, you can hint the installation location via -DCMAKE_PREFIX_PATH=... or per dependency via -D{DEPENDENCY}_ROOT=... (*_ROOT variables can also be environment variables).

Usage

FairMQ ships as a CMake package, so in your CMakeLists.txt you can discover it like this:

find_package(FairCMakeModules 1.0 REQUIRED)
include(FairFindPackage2)
find_package2(FairMQ)
find_package2_implicit_dependencies()

The FairFindPackage2 module is part of the FairCMakeModules package.

If FairMQ is not installed in system directories, you can hint the installation:

list(PREPEND CMAKE_PREFIX_PATH /path/to/fairmq_install)

Dependencies

Which dependencies are required depends on which components are built.

Supported platform is Linux. macOS is supported on a best-effort basis.

CMake options

On command line:

  • -DDISABLE_COLOR=ON disables coloured console output.
  • -DBUILD_TESTING=OFF disables building of tests.
  • -DBUILD_EXAMPLES=OFF disables building of examples.
  • -DBUILD_DOCS=ON enables building of API docs.
  • -DFAIRMQ_CHANNEL_DEFAULT_AUTOBIND=OFF disable channel autoBind by default
  • You can hint non-system installations for dependent packages, see the #installation-from-source section above

After the find_package(FairMQ) call the following CMake variables are defined:

Variable Info
${FairMQ_PACKAGE_DEPENDENCIES} the list of public package dependencies
${FairMQ_<dep>_VERSION} the minimum <dep> version FairMQ requires
${FairMQ_<dep>_COMPONENTS} the list of <dep> components FairMQ depends on
${FairMQ_PACKAGE_COMPONENTS} the list of components FairMQ consists of
${FairMQ_#COMPONENT#_FOUND} TRUE if this component was built
${FairMQ_VERSION} the version in format MAJOR.MINOR.PATCH
${FairMQ_GIT_VERSION} the version in the format returned by git describe --tags --dirty --match "v*"
${FairMQ_PREFIX} the actual installation prefix
${FairMQ_BINDIR} the installation bin directory
${FairMQ_INCDIR} the installation include directory
${FairMQ_LIBDIR} the installation lib directory
${FairMQ_DATADIR} the installation data directory (../share/fairmq)
${FairMQ_CMAKEMODDIR} the installation directory of shipped CMake find modules
${FairMQ_BUILD_TYPE} the value of CMAKE_BUILD_TYPE at build-time
${FairMQ_CXX_FLAGS} the values of CMAKE_CXX_FLAGS and CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE} at build-time

Documentation

  1. Device
    1. Topology
    2. Communication Patterns
    3. State Machine
    4. Multiple devices in the same process
  2. Transport Interface
    1. Message
      1. Ownership
    2. Channel
    3. Poller
  3. Configuration
    1. Device Configuration
    2. Communication Channels Configuration
      1. JSON Parser
      2. SuboptParser
    3. Introspection
  4. Development
    1. Testing
    2. Static Analysis
      1. CMake Integration
      2. Extra Compiler Arguments
  5. Logging
    1. Log severity
    2. Log verbosity
    3. Color for console output
    4. File output
    5. Custom sinks
  6. Examples
  7. Plugins
    1. Usage
    2. Development
    3. Provided Plugins
      1. PMIx

fairmq's People

Contributors

andreylebedev avatar aphecetche avatar christiantackegsi avatar davidrohr avatar dennisklein avatar fuhlig1 avatar ironmann avatar karabowi avatar knopers8 avatar ktf avatar matthiasrichter avatar mattkretz avatar mkrzewic avatar mohammadalturany avatar nicolaswinckler avatar rbx avatar sawenzel avatar sbinet avatar teo avatar tkollegger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fairmq's Issues

System library paths and $LD_LIBRARY_PATH are not searched for plugins

Describe the bug
When passing --plugin dds to a FairMQ device, it cannot find it, even if it is installed into the library directory.

To Reproduce
Steps to reproduce the behavior:

  1. Compile and install with -DBUILD_DDS_PLUGIN=ON.
  2. Run bin/fairmq-bsampler --id asdf --plugin dds from the install prefix:
[ERROR] Uncaught exception reached the top of main: The plugin dds could not be found in the plugin search paths.

Expected behavior
System library paths and $LD_LIBRARY_PATH should be searched, too.

Deadlock at device shutdown

Bug description

This is a bug observed in AliceO2 DPL workflows. Sometimes FairMQ devices being sent a SIGTERM do not exit properly but go into a waiting state (probably deadlock). We've been seeing this for a while in non-terminating unit tests and it is now becoming a real problem with larger workflows where this occurs more often.

A typical log is the following

[66275]: [11:07:42][INFO] Received device shutdown request (signal 15).
[66275]: [11:07:42][INFO] Waiting for graceful device shutdown. Hit Ctrl-C again to abort immediately.
[66275]: [11:07:43][STATE] Entering READY state
** HANGS HERE **

which shows that SIGTERM was received but the process does not actually terminate.

At this point, the backtrace is the following:

thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007fff6ad29a16 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff6aef2589 libsystem_pthread.dylib`_pthread_cond_wait + 732
    frame #2: 0x00007fff68b2dd43 libc++.1.dylib`std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 93
    frame #3: 0x000000010e7e844d libFairMQ.1.3.dylib`std::__1::cv_status std::__1::condition_variable::wait_for<long long, std::__1::ratio<1l, 1000l> >(this=0x00007fe22de1f960, __lk=0x00007ffee5601d78, __d=0x00007ffee5601d70) at __mutex_base:416
    frame #4: 0x000000010e7ec120 libFairMQ.1.3.dylib`fair::mq::fsm::Machine_::ProcessWork(this=0x00007fe22de1f8c0) at FairMQStateMachine.cxx:380
    frame #5: 0x000000010e7ebf7b libFairMQ.1.3.dylib`FairMQStateMachine::ProcessWork(this=0x00007fe22f8e9c00) at FairMQStateMachine.cxx:654
    frame #6: 0x000000010e719e75 libFairMQ.1.3.dylib`FairMQDevice::RunStateMachine(this=0x00007fe22f8e9c00) at FairMQDevice.h:419
    frame #7: 0x000000010e71890d libFairMQ.1.3.dylib`fair::mq::DeviceRunner::Run(this=0x00007ffee5604988) at DeviceRunner.cxx:92
    frame #8: 0x000000010d2f3ea1 libFramework.dylib`doChild(argc=19, argv=0x00007ffee560d188, spec=0x00007fe22c4dfa00) at runDataProcessing.cxx:729
    frame #9: 0x000000010d2f98c9 libFramework.dylib`runStateMachine(workflow=size=1, driverControl=0x00007ffee560b928, driverInfo=0x00007ffee560b7d8, metricsInfos=size=1, frameworkId="ITSDigitWriter") at runDataProcessing.cxx:850
    frame #10: 0x000000010d302727 libFramework.dylib`doMain(argc=19, argv=0x00007ffee560d188, workflow=size=1, channelPolicies=size=1, completionPolicies=size=1, workflowOptions=size=1, configContext=0x00007ffee560c8a8) at runDataProcessing.cxx:1127
    frame #11: 0x000000010a60aa44 digitizer-workflow`main(argc=19, argv=0x00007ffee560d188) at runDataProcessing.h:119
    frame #12: 0x00007fff6abd9015 libdyld.dylib`start + 1
    frame #13: 0x00007fff6abd9015 libdyld.dylib`start + 1

Expected behavior
I expect the device to shutdown properly and without deadlocking once a SIGTERM was received.
The expected log is the following

[66269]: [11:07:42][INFO] Received device shutdown request (signal 15).
[66269]: [11:07:42][INFO] Waiting for graceful device shutdown. Hit Ctrl-C again to abort immediately.
[66269]: [11:07:43][STATE] Entering READY state
[66269]: [11:07:43][STATE] Entering RESETTING_TASK state
[66269]: [11:07:43][STATE] Entering DEVICE_READY state
[66269]: [11:07:43][STATE] Entering RESETTING_DEVICE state
[66269]: [11:07:43][STATE] Entering IDLE state
[66269]: [11:07:43][STATE] Entering EXITING state
[66269]: [11:07:43][STATE] Exiting FairMQ state machine
[66269]: [11:07:43][INFO] Process 66269 is exiting.

To Reproduce
Chances to observe it increase with the number of devices participating in the workflow.
To reproduce it (with high probability),
a) take branch https://github.com/sawenzel/AliceO2/tree/swenzel/simdpltutorial of O2.
b) compile with alidist commit d060276af15ed999c
c) run o2sim -n 10 to produce 10 simulated events
d) run digitizer-workflow --tpc-lanes 1 --tpc-sectors 1 -b

This workflow will sometimes not correctly terminate.

Note
We are still using FairMQ 1.2.6 but I have already verified that the problem is still there with FairMQ 1.3.0

LOG(WARN) on options breaks O2 DPL error reporting

fairmq/options/FairMQProgOptions.cxx now has a line:

LOG(WARN) << "detected unregistered option: " << o;

This causes the O2 DPL to mark all running devices in red due to the presence of the warning message (@ktf: by the way FairMQ v1.2.5 fixes the old WARN problem but introduces this).

An example of error messages is:

[46204]: [17:27:54][WARN] detected unregistered option: --num-files
[46204]: [17:27:54][WARN] detected unregistered option: 1
[46204]: [17:27:54][WARN] detected unregistered option: --num-workers
[46204]: [17:27:54][WARN] detected unregistered option: 4
[46204]: [17:27:54][WARN] detected unregistered option: --sleep
[46204]: [17:27:54][WARN] detected unregistered option: 1

This is due to the way DPL forwards command-line options to the underlying devices, I don't know if there's a proper way to tell FairMQ to simply ignore them?

Or maybe we should fix it somehow on our side?

Thanks!

New `ADD_REQUIREMENTS_OF` option for `find_package2`

Describe the solution you'd like
find_package2 should support a new option ADD_REQUIREMENTS_OF:

find_package2(PUBLIC Boost
  VERSION 1.67
  COMPONENTS thread system timer
  ADD_REQUIREMENTS_OF asiofi FairLogger
)

Describe alternatives you've considered
A more verbose alternative is currently implemented and does not conflict with this new proposed option:

find_package2(PUBLIC Boost
  VERSION 1.67 ${asiofi_Boost_VERSION} ${FairLogger_Boost_VERSION}
  COMPONENTS thread system timer ${asiofi_Boost_COMPONENTS} ${asiofi_Boost_COMPONENTS}
)

Implement config plugin

  • Move existing config logic into a builtin plugin.
  • Initialize FairMQProgOptions in the device constructor.
  • Support RemoveProperty() or similar.
  • Create channels implicitely if some attribute (e.g. chans.asdf.0.address) is set
  • Support all channel properties with --channel-config (again?). E.g. rateLogging= does not work.

Improve FairMQChannel polling to be O(1)

From FairRoot created by rbx : FairRootGroup/FairRoot#566

Current I/O multiplexing implementation in FairMQ for waiting on data on Channels behaves O(n). Polling unix sockets - hidden in the underlying zeromq/nanomsg libraries - is already O(1). All transports we currently support can expose the relevant operating system file descriptors which enables the usage of O(1) polling system calls - kqueue for MacOSX and epoll for Linux. Boost.Asio io services already nicely abstract such system APIs for us and according to Integrating Boost Asio with ZeroMQ integration is feasible.

A mockup shows that the edge-triggered interface exposed by ZeroMQ causes socket starvation in a simple implementation -> Investigate how AZMQ/czmq zloop solve this.

Make unit tests usable for continuous integration: use dynamic port assignment

We have been running into problems with using unit tests in continuous integration because of the fixed ports being used in the configuration of the devices. Since the bind to a port switches dynamically to another port if the requested one is not free, the communication between devices is broken.

Possible solutions:

  1. advanced: run the unit tests using DDS
  2. switch off dynamic port bind and handle the failure by restarting the test with different ports
  3. sequential start of devices, extract port binding from log message and start the connecting devices with this configuration

Reduce coupling of FairMQStateMachine to FairMQDevice

We have discussed two options so far:

  1. Use fairmq/StateMachine.h.
  2. Use a new Boost.SML based implementation (needs C++14).

If we decide for option 2, fairmq/StateMachine.h and related unit tests can be removed from the codebase.

Offer better Send/Receive API

Is your feature request related to a problem? Please describe.
The current Send API takes message pointers by reference. The users should not touch the messages after calling Send on it, because it can be sent out at any moment and will be deleted automatically. However if a timeout or some error condition happen, Send will return an status value and the user can touch the message, change it, or resend it. This is not clear with the current API.

Describe the solution you'd like
Instead we should take messages as unique_ptr that user has to std::move to us, giving up the ownership to the transport. To further support giving back the ownership in case of error or a timeout to the user, we should introduce a custom return value that contains a status flag and optional unique_ptr that will contain the message in case of timeout/error. This return value can override the comparison operators for checking of the status flag, which will make it more compatible with the old interface and ease the transition.

Same convention can be used for Receive, where the returned type will contain the received message.

Option to compile static FairMQ library

I would like to create Docker images my individual FairMQ services, e.g. a sample, a processor, etc. In order to reduce the image size, it would be favourable to compile the service into a static executable which can is then copied into a minimal base image and does not require further dependencies. As far as I am aware, static libraries are needed to achieve that.

An option to compile to compile FairMQ (and by extension FairLogger) into a static library would help to solve this issue.

Implement a PMIx plugin

From FairRoot created by dennisklein : FairRootGroup/FairRoot#746

PMIx seems to be supported by SLURM (1.x from 16.04 and 2.x from 17.11 - so quite recent versions; GSI runs SLURM 14.03 at the moment). Many other RMS seem to support the predecessors PMI-1 and PMI-2. Maybe, at some point in the future, if PMIx takes off, we should consider writing a PMIx FairMQ plugin and controller.

http://www.mcs.anl.gov/papers/P1760.pdf, https://github.com/pmix/pmix-standard (pmix-standard-2.0.pdf), https://pmix.org/

See also FairRootGroup/DDS#194

Add ability to specify channel polling pattern

I discussed this with Mohammad, putting it here to start a discussion.

As we discussed a while ago, I implement HandleData(), but do not process data immediately, for example waiting for extra inputs of a computation. This means that if I have two devices pushing to a third one, this can result in an imbalance in the queues with all of its consequences.

I would therefore like to have a way to rescale the polling on a channel with respect to another, so that I can reduce the rate at which I get messaged on the fast one. Is that possible? Is there a better alternative?

RDMA transport

From FairRoot created by dennisklein : FairRootGroup/FairRoot#563

In order to support efficient transport on high-bandwidth and low-latency fabrics like Infiniband or Converged Ethernet, we need a RDMA based transport.

Possible candidates:

  1. libfabrics
  2. Shared Memory Communications-RDMA (SMC-R)
  3. libfabrics integration into nanomsg

Update discussion from 10.3.2017:

  • Preferred solution is to finish Ioannis' ofi integration into nanomsg.

Update 28.7.2017:


Update 18.7.2018

Increase robustness of unit tests and examples with DDS

Is your feature request related to a problem? Please describe.
Currently, unit tests and examples, that run a topology of devices, are orchestrated with simple fire&forget shell scripts and rely on hard-coded TCP port allocations. This sometimes leads to problems on systems, where needed ports are already in use.

Describe the solution you'd like
Orchestrate unit tests and examples with DDS.

Describe alternatives you've considered
I considered implementing my own orchestrator, which would just duplicate many things DDS already solves. I also considered using systemd for process mgmt, but it is not available on all our supported platforms (the topology mgmt still has to be done with custom code).

Additional context
A pending feature request FairRootGroup/DDS#205 will help a lot.

Cleanup Channel/Socket

  • get rid of unused interfaces (no deprecation needed, since these are unused (at least not known to us)):

    • get rid of SetSendTimeout/GetSendTimeout/SetReceiveTimeout/GetReceiveTimeout (at least from the general interface). Values set by these FairMQSocket methods are currently used only inside each transport - they are transport details. The actual transfer timeouts are controlled by the user via transfer calls, e.g.: Receive(FairMQMessagePtr& msgVec, const int timeout = 0). It is up to the transport how to implement it these. A general timeout value currently has no meaning in the user-facing API.
    • get rid of GetOption/SetOption and replace with specific API, such as SetLinger/GetLinger. This is less error-prone and more type-safe. Currently these interfaces are only used internally in FairMQDevice for high watermark and kernel transfer size settings.
    • get rid of general GetSocket interface - it returns internal socket representation, which should not be visible from the interface API.
  • rename SendAsync/ReceiveAsync to more clear TrySend/TryReceive Remove SendAsync/ReceiveAsync, instead Send/Receive with a timeout of 0 can be used (since these are used, this will require a deprecation warning iteration). This is already the case in the transport API, but not yet in Channel API.

  • move Bind/Connect/Attach implementations from device class to channel class.

  • introduce (experimental?) value-based move-only fair::mq::Message in parallel to existing FairMQMessage. As a consequence this will require new overloads for send/receive and serialization APIs.

Anything else?

More ready-to-use devices

From FairRoot created by rbx : FairRootGroup/FairRoot#565

Implement common use case devices that are usable out-of-the-box.

  • Sampler:
    • send binary blob (is FairMQBenchmarkSampler sufficient?).
    • send file content.
  • Merger (policy for merging decision).
  • Sink:
    • receive and delete (default FairMQSink).
    • receive and dump to file (optionally with collecting until certain size is reached to optimize i/o).
  • ...

Spurious (?) warning on startup

Since I migrated to the split FairMQ I started to get:

[WARN] FairMQProgOptions not available! Using defaults.
[WARN] FairMQProgOptions not available! Using defaults.
[WARN] FairMQProgOptions not available! Using defaults.
[WARN] FairMQProgOptions not available! Using defaults.

what is that about?

error: no matching function for call to 'find_if'

With Boost 1.64 everything works, but with Boost 1.66 and 1.67:

[  0%] Building CXX object fairmq/CMakeFiles/FairMQ.dir/DeviceRunner.cxx.o
In file included from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/Tools.h:14:0,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/Plugin.h:12,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/PluginManager.h:12,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.h:13,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.cxx:9:
/home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/tools/Network.h: In function ‘std::__cxx11::string fair::mq::tools::getIpFromHostname(const string&)’:
/home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/tools/Network.h:143:10: error: no matching function for call to ‘find_if(boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator&, fair::mq::tools::getIpFromHostname(const string&)::<lambda(const endpoint&)>)’
         });
          ^
In file included from /usr/include/c++/7/algorithm:62:0,
                 from /home/dklein/alibuild/sw/fedora27_x86-64/boost/v1.66.0-1/include/boost/any.hpp:17,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/EventManager.h:22,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.h:12,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.cxx:9:
/usr/include/c++/7/bits/stl_algo.h:3923:5: note: candidate: template<class _IIter, class _Predicate> _IIter std::find_if(_IIter, _IIter, _Predicate)
     find_if(_InputIterator __first, _InputIterator __last,
     ^~~~~~~
/usr/include/c++/7/bits/stl_algo.h:3923:5: note:   template argument deduction/substitution failed:
In file included from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/Tools.h:14:0,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/Plugin.h:12,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/PluginManager.h:12,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.h:13,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.cxx:9:
/home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/tools/Network.h:143:10: note:   deduced conflicting types for parameter ‘_IIter’ (‘boost::asio::ip::basic_resolver_results<boost::asio::ip::tcp>’ and ‘boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>’)
         });
          ^
/home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/tools/Network.h: In function ‘std::__cxx11::string fair::mq::tools::getIpFromHostname(const string&, boost::asio::io_service&)’:
/home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/tools/Network.h:169:10: error: no matching function for call to ‘find_if(boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator&, fair::mq::tools::getIpFromHostname(const string&, boost::asio::io_service&)::<lambda(const endpoint&)>)’
         });
          ^
In file included from /usr/include/c++/7/algorithm:62:0,
                 from /home/dklein/alibuild/sw/fedora27_x86-64/boost/v1.66.0-1/include/boost/any.hpp:17,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/EventManager.h:22,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.h:12,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.cxx:9:
/usr/include/c++/7/bits/stl_algo.h:3923:5: note: candidate: template<class _IIter, class _Predicate> _IIter std::find_if(_IIter, _IIter, _Predicate)
     find_if(_InputIterator __first, _InputIterator __last,
     ^~~~~~~
/usr/include/c++/7/bits/stl_algo.h:3923:5: note:   template argument deduction/substitution failed:
In file included from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/Tools.h:14:0,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/Plugin.h:12,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/PluginManager.h:12,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.h:13,
                 from /home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/DeviceRunner.cxx:9:
/home/dklein/alibuild/sw/SOURCES/FairMQ/v1.2.0/v1.2.0/fairmq/tools/Network.h:169:10: note:   deduced conflicting types for parameter ‘_IIter’ (‘boost::asio::ip::basic_resolver_results<boost::asio::ip::tcp>’ and ‘boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>’)
         });
          ^
make[2]: *** [fairmq/CMakeFiles/FairMQ.dir/build.make:63: fairmq/CMakeFiles/FairMQ.dir/DeviceRunner.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1113: fairmq/CMakeFiles/FairMQ.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

Turn device algorithm on master thread

The current choice of letting device algorithm spawn on a non-standard thread (thread 2) is problematic.

I've had, for instance, problems with certain (thread-aware) classes which I initialize prior to setting up the device and which I then give to the device constructor. Letting the main algorithm turn on the master thread would avoid such problems.

Disable rate logging

I could not find any way to disable the rate logging. Is there one? If not, could it be added?

Ports used during tests

In our tests (see here, CERN account required) we have noticed that the FairMQ.Protocols test systematically fails on a macOS node.

Turns out, the test tries to listen to the TCP port 127.0.0.1:6000 which is also used by another process running independently on the same system (X11.bin for the record).

I don't know if it's possible to either automatically pick a different port at the beginning of the test (this would be ideal), or maybe hardcode a different port for the moment. For instance, port 7654 seems to be a better candidate 😄

(cc'ing @dennisklein)

Race conditions when throwing an exception

Looks like there is a race condition when trowing an exception and catching it inside the ConditonalRun() method of a FairMQDevice. This seems to be yet again another Control plugin related issue. Traceback as follows:

Sampling process 97930 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling test_Framework_test_ProcessorOptions (pid 97930) every 1 millisecond
Process:         test_Framework_test_ProcessorOptions [97930]
Path:            /Users/ktf/work/active/sw/BUILD/e99daaedb3f7bac4e081a3875b69513b5ff06c2d/O2/bin/test_Framework_test_ProcessorOptions
Load Address:    0x10a113000
Identifier:      test_Framework_test_ProcessorOptions
Version:         0
Code Type:       X86-64
Parent Process:  test_Framework_test_ProcessorOptions [97926]

Date/Time:       2018-10-02 16:37:40.996 +0200
Launch Time:     2018-10-02 16:36:52.458 +0200
OS Version:      Mac OS X 10.13.6 (17G65)
Report Version:  7
Analysis Tool:   /usr/bin/sample

Physical footprint:         5900K
Physical footprint (peak):  5900K
----

Call graph:
    2623 Thread_24274050   DispatchQueue_1: com.apple.main-thread  (serial)
    + 2623 start  (in libdyld.dylib) + 1  [0x7fff58e86015]
    +   2623 main  (in test_Framework_test_ProcessorOptions) + 3330  [0x10a124f22]  runDataProcessing.h:119
    +     2623 doMain(int, char**, std::__1::vector<o2::framework::DataProcessorSpec, std::__1::allocator<o2::framework::DataProcessorSpec> > const&, std::__1::vector<o2::framework::ChannelConfigurationPolicy, std::__1::allocator<o2::framework::ChannelConfigurationPolicy> > const&, std::__1::vector<o2::framework::CompletionPolicy, std::__1::allocator<o2::framework::CompletionPolicy> > const&, std::__1::vector<o2::framework::ConfigParamSpec, std::__1::allocator<o2::framework::ConfigParamSpec> > const&, o2::framework::ConfigContext&)  (in libFramework.dylib) + 8124  [0x10c070e5c]  runDataProcessing.cxx:1143
    +       2623 runStateMachine(std::__1::vector<o2::framework::DataProcessorSpec, std::__1::allocator<o2::framework::DataProcessorSpec> > const&, o2::framework::DriverControl&, o2::framework::DriverInfo&, std::__1::vector<o2::framework::DeviceMetricsInfo, std::__1::allocator<o2::framework::DeviceMetricsInfo> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)  (in libFramework.dylib) + 14611  [0x10c067b43]  runDataProcessing.cxx:855
    +         2623 doChild(int, char**, o2::framework::DeviceSpec const&)  (in libFramework.dylib) + 7260  [0x10c0631cc]  runDataProcessing.cxx:733
    +           2623 fair::mq::DeviceRunner::~DeviceRunner()  (in libFramework.dylib) + 21  [0x10c063f35]  DeviceRunner.h:51
    +             2623 fair::mq::DeviceRunner::~DeviceRunner()  (in libFramework.dylib) + 58  [0x10c0751fa]  DeviceRunner.h:51
    +               2623 fair::mq::PluginManager::~PluginManager()  (in libFramework.dylib) + 21  [0x10c075305]  PluginManager.h:56
    +                 2623 fair::mq::PluginManager::~PluginManager()  (in libFramework.dylib) + 1131  [0x10c07601b]  PluginManager.h:58
    +                   2623 std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > > > >::~map()  (in libFramework.dylib) + 21  [0x10c0762b5]  __tree:1490
    +                     2623 std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > > > >::~map()  (in libFramework.dylib) + 21  [0x10c076545]  __tree:1490
    +                       2623 std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > > > >::~__tree()  (in libFramework.dylib) + 21  [0x10c076565]  __tree:1814
    +                         2623 std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > > > >::~__tree()  (in libFramework.dylib) + 79  [0x10c0765bf]  __tree:1821
    +                           2623 std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > > > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > >, void*>*)  (in libFramework.dylib) + 241  [0x10c0766c1]  memory:1732
    +                             2623 std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > >::~pair()  (in libFramework.dylib) + 21  [0x10c076735]  utility:312
    +                               2623 std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<fair::mq::Plugin, std::__1::default_delete<fair::mq::Plugin> > >::~pair()  (in libFramework.dylib) + 192  [0x10c076800]  memory:2285
    +                                 2623 fair::mq::plugins::Control::~Control()  (in libFairMQ.1.3.dylib) + 14  [0x10c916e4e]  Control.cxx:382
    +                                   2623 fair::mq::plugins::Control::~Control()  (in libFairMQ.1.3.dylib) + 43  [0x10c916d4b]  Control.cxx:383
    +                                     2623 std::__1::thread::join()  (in libc++.1.dylib) + 24  [0x7fff56e1b828]
    +                                       2623 _pthread_join  (in libsystem_pthread.dylib) + 626  [0x7fff591a2824]
    +                                         2623 __semwait_signal  (in libsystem_kernel.dylib) + 10  [0x7fff58fd6d82]
    2623 Thread_24274063
    + 2623 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5919dbf9]
    +   2623 _pthread_start  (in libsystem_pthread.dylib) + 377  [0x7fff5919e50d]
    +     2623 _pthread_body  (in libsystem_pthread.dylib) + 340  [0x7fff5919e661]
    +       2623 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (fair::mq::plugins::Control::*)(), fair::mq::plugins::Control*> >(void*)  (in libFairMQ.1.3.dylib) + 62  [0x10c91779e]  type_traits:4369
    +         2623 fair::mq::plugins::Control::StaticMode()  (in libFairMQ.1.3.dylib) + 28  [0x10c913b1c]  Control.cxx:244
    +           2623 fair::mq::plugins::Control::RunStartupSequence()  (in libFairMQ.1.3.dylib) + 120  [0x10c9163e8]  Control.cxx:368
    +             2623 fair::mq::plugins::Control::WaitForNextState()  (in libFairMQ.1.3.dylib) + 75  [0x10c91696b]  Control.cxx:232
    +               2623 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff56ddacb0]
    +                 2623 _pthread_cond_wait  (in libsystem_pthread.dylib) + 732  [0x7fff5919f589]
    +                   2623 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff58fd6a16]
    2623 Thread_24274064
    + 2623 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5919dbf9]
    +   2623 _pthread_start  (in libsystem_pthread.dylib) + 377  [0x7fff5919e50d]
    +     2623 _pthread_body  (in libsystem_pthread.dylib) + 340  [0x7fff5919e661]
    +       2623 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (fair::mq::plugins::Control::*)(), fair::mq::plugins::Control*> >(void*)  (in libFairMQ.1.3.dylib) + 62  [0x10c91779e]  type_traits:4369
    +         2623 fair::mq::plugins::Control::SignalHandler()  (in libFairMQ.1.3.dylib) + 99  [0x10c915ba3]  thread:448
    +           2623 std::__1::this_thread::sleep_for(std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > const&)  (in libc++.1.dylib) + 73  [0x7fff56e1b934]
    +             2620 nanosleep  (in libsystem_c.dylib) + 199  [0x7fff58f51724]
    +             ! 2620 __semwait_signal  (in libsystem_kernel.dylib) + 10  [0x7fff58fd6d82]
    +             2 nanosleep  (in libsystem_c.dylib) + 91  [0x7fff58f516b8]
    +             ! 2 clock_get_time  (in libsystem_kernel.dylib) + 79  [0x7fff58fbbfb6]
    +             !   2 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff58fcc724]
    +             !     2 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff58fcd20a]
    +             1 nanosleep  (in libsystem_c.dylib) + 163  [0x7fff58f51700]
    2623 Thread_24274066
    + 2623 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5919dbf9]
    +   2623 _pthread_start  (in libsystem_pthread.dylib) + 377  [0x7fff5919e50d]
    +     2623 _pthread_body  (in libsystem_pthread.dylib) + 340  [0x7fff5919e661]
    +       2623 thread_routine(void*)  (in libzmq.5.dylib) + 45  [0x10ef34ad7]
    +         2623 zmq::kqueue_t::loop()  (in libzmq.5.dylib) + 270  [0x10ef0c414]
    +           2623 kevent  (in libsystem_kernel.dylib) + 10  [0x7fff58fd7bea]
    2623 Thread_24274067
    + 2623 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5919dbf9]
    +   2623 _pthread_start  (in libsystem_pthread.dylib) + 377  [0x7fff5919e50d]
    +     2623 _pthread_body  (in libsystem_pthread.dylib) + 340  [0x7fff5919e661]
    +       2623 thread_routine(void*)  (in libzmq.5.dylib) + 45  [0x10ef34ad7]
    +         2615 zmq::kqueue_t::loop()  (in libzmq.5.dylib) + 270  [0x10ef0c414]
    +         ! 2615 kevent  (in libsystem_kernel.dylib) + 10  [0x7fff58fd7bea]
    +         8 zmq::kqueue_t::loop()  (in libzmq.5.dylib) + 155  [0x10ef0c3a1]
    +           8 zmq::poller_base_t::execute_timers()  (in libzmq.5.dylib) + 76  [0x10ef1a726]
    +             8 zmq::tcp_connecter_t::start_connecting()  (in libzmq.5.dylib) + 19  [0x10ef331bf]
    +               5 zmq::tcp_connecter_t::open()  (in libzmq.5.dylib) + 174  [0x10ef338ac]
    +               : 5 zmq::tcp_address_t::resolve(char const*, bool, bool, bool)  (in libzmq.5.dylib) + 1209  [0x10ef319d3]
    +               :   5 zmq::tcp_address_t::resolve_hostname(char const*, bool, bool)  (in libzmq.5.dylib) + 91  [0x10ef312e3]
    +               :     4 getaddrinfo  (in libsystem_info.dylib) + 61  [0x7fff58f789ad]
    +               :     | 4 _getaddrinfo_internal  (in libsystem_info.dylib) + 242  [0x7fff58f98f42]
    +               :     |   3 si_addrinfo  (in libsystem_info.dylib) + 1823  [0x7fff58f790df]
    +               :     |   + 3 si_addrinfo_list  (in libsystem_info.dylib) + 760  [0x7fff58f7fc08]
    +               :     |   +   3 si_addrinfo_v4  (in libsystem_info.dylib) + 609  [0x7fff58f9ce51]
    +               :     |   +     1 LI_ils_create  (in libsystem_info.dylib) + 1657  [0x7fff58f736a9]
    +               :     |   +     ! 1 padsize  (in libsystem_info.dylib) + 95  [0x7fff58f9365f]
    +               :     |   +     1 LI_ils_create  (in libsystem_info.dylib) + 3820  [0x7fff58f73f1c]
    +               :     |   +     ! 1 malloc  (in libsystem_malloc.dylib) + 24  [0x7fff5902e4c7]
    +               :     |   +     !   1 malloc_zone_malloc  (in libsystem_malloc.dylib) + 103  [0x7fff5902f1bd]
    +               :     |   +     !     1 szone_malloc_should_clear  (in libsystem_malloc.dylib) + 422  [0x7fff5902f3bf]
    +               :     |   +     !       1 tiny_malloc_from_free_list  (in libsystem_malloc.dylib) + 198  [0x7fff59030259]
    +               :     |   +     1 LI_ils_create  (in libsystem_info.dylib) + 567  [0x7fff58f73267]
    +               :     |   1 si_addrinfo  (in libsystem_info.dylib) + 1348  [0x7fff58f78f04]
    +               :     |     1 _gai_numerichost  (in libsystem_info.dylib) + 833  [0x7fff58f9df41]
    +               :     1 getaddrinfo  (in libsystem_info.dylib) + 0  [0x7fff58f78970]
    +               2 zmq::tcp_connecter_t::open()  (in libzmq.5.dylib) + 273  [0x10ef3390f]
    +               : 2 zmq::open_socket(int, int, int)  (in libzmq.5.dylib) + 15  [0x10ef09516]
    +               :   2 socket  (in libsystem_kernel.dylib) + 0,10  [0x7fff58fd84c8,0x7fff58fd84d2]
    +               1 zmq::tcp_connecter_t::open()  (in libzmq.5.dylib) + 709  [0x10ef33ac3]
    +                 1 __connect  (in libsystem_kernel.dylib) + 10  [0x7fff58fd6096]
    2623 Thread_24274069
      2623 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5919dbf9]
        2623 _pthread_start  (in libsystem_pthread.dylib) + 377  [0x7fff5919e50d]
          2623 _pthread_body  (in libsystem_pthread.dylib) + 340  [0x7fff5919e661]
            2623 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (fair::mq::plugins::Control::*)(), fair::mq::plugins::Control*> >(void*)  (in libFairMQ.1.3.dylib) + 62  [0x10c91779e]  type_traits:4369
              2623 fair::mq::plugins::Control::HandleShutdownSignal()  (in libFairMQ.1.3.dylib) + 130  [0x10c916a82]  Control.cxx:313
                2623 fair::mq::plugins::Control::RunShutdownSequence()  (in libFairMQ.1.3.dylib) + 248  [0x10c916898]  Control.cxx:347
                  2623 fair::mq::plugins::Control::WaitForNextState()  (in libFairMQ.1.3.dylib) + 75  [0x10c91696b]  Control.cxx:232
                    2623 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 18  [0x7fff56ddacb0]
                      2623 _pthread_cond_wait  (in libsystem_pthread.dylib) + 732  [0x7fff5919f589]
                        2623 __psynch_cvwait  (in libsystem_kernel.dylib) + 10  [0x7fff58fd6a16]

Total number in stack (recursive counted multiple, when >=5):
        5       _pthread_body  (in libsystem_pthread.dylib) + 340  [0x7fff5919e661]
        5       _pthread_start  (in libsystem_pthread.dylib) + 377  [0x7fff5919e50d]
        5       thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff5919dbf9]

Sort by top of stack, same collapsed (when >= 5):
        __psynch_cvwait  (in libsystem_kernel.dylib)        5246
        __semwait_signal  (in libsystem_kernel.dylib)        5243
        kevent  (in libsystem_kernel.dylib)        5238

Binary Images:
       0x10a113000 -        0x10a14bff7 +test_Framework_test_ProcessorOptions (0) <A93FEFEA-3549-3950-8CD1-B1BCB2B8471C> /Users/ktf/work/active/sw/BUILD/O2-latest/O2/bin/test_Framework_test_ProcessorOptions
       0x10a178000 -        0x10a17aff3 +libboost_system.dylib (0) <AE94154B-644E-3916-8A81-275E3B7A0EE1> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_system.dylib
       0x10a185000 -        0x10a204fff +libboost_log.dylib (0) <0DD8C340-903A-3490-9B63-20E7BE0BD6A3> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_log.dylib
       0x10a2e7000 -        0x10a36afff +libboost_log_setup.dylib (0) <ACBC2E4B-F15B-3D78-913C-85658EA8755E> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_log_setup.dylib
       0x10a472000 -        0x10a4a5fff +libboost_program_options.dylib (0) <EEE69033-41F2-3B6A-837D-989154D00AA3> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_program_options.dylib
       0x10a505000 -        0x10a512ff7 +libboost_thread.dylib (0) <62709FB6-88DC-3782-9695-36DA1D321DF8> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_thread.dylib
       0x10a530000 -        0x10aa83ff7 +libarrow.10.dylib (0) <DD95B55F-6B61-3115-84D7-3369359D1666> /Users/ktf/work/active/sw/osx_x86-64/arrow/v0.9.0-alice1-1/lib/libarrow.10.dylib
       0x10af49000 -        0x10b013ff7 +libBase.17.dylib (0) <B78C1D74-D10A-3F02-B391-6AA55C95D65B> /Users/ktf/work/active/sw/osx_x86-64/FairRoot/0-1/lib/libBase.17.dylib
       0x10b118000 -        0x10b34bfff +libCore.6.14.so (0) <314EAFAB-591F-3A71-A45D-B4F19765A84A> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libCore.6.14.so
       0x10b66a000 -        0x10b71fff7 +libTree.6.14.so (0) <A12048C8-E16E-370B-ACB7-EF7528536FDE> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libTree.6.14.so
       0x10b805000 -        0x10b812ff7 +libboost_iostreams.dylib (0) <E898DE46-BDA1-34E8-8E3B-D816FDA5492F> /Users/ktf/work/active/sw/osx_x86-64/boost/v1.66.0-1/lib/libboost_iostreams.dylib
       0x10b830000 -        0x10b872ff7 +libROOTDataFrame.6.14.so (0) <14F8FD2D-D021-3A88-9271-295028F0CD1E> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libROOTDataFrame.6.14.so
       0x10b8cd000 -        0x10b983ff7 +libROOTVecOps.6.14.so (0) <F588BB2F-2D86-3977-8B3A-241DEE4849A8> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libROOTVecOps.6.14.so
       0x10ba23000 -        0x10bae6ff7 +libTreePlayer.6.14.so (0) <C9851570-BDFE-3EF2-9356-2AD51D23321E> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libTreePlayer.6.14.so
       0x10bbd3000 -        0x10bc23fff +libNet.6.14.so (0) <614C98E0-E8EC-3ACD-9FFC-C8DD77AA80F8> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libNet.6.14.so
       0x10bcab000 -        0x10bce8ff7 +libMonitoring.dylib (0) <187BCD7F-BFA2-3BA9-81C8-056E4D91A8E2> /Users/ktf/work/active/sw/osx_x86-64/Monitoring/dev-1/lib/libMonitoring.dylib
       0x10bd45000 -        0x10bd6ffff +libConfiguration.dylib (0) <081D321A-1A34-3471-B2E2-0BF34DCBC4BB> /Users/ktf/work/active/sw/osx_x86-64/Configuration/v1.5.2-1/lib/libConfiguration.dylib
       0x10bdb8000 -        0x10bdc6fff +libInfoLogger.dylib (0) <8560BCF8-CBAE-34DF-9915-57291DBDB5F4> /Users/ktf/work/active/sw/osx_x86-64/libInfoLogger/master-1/lib/libInfoLogger.dylib
       0x10bdde000 -        0x10be0efff +libCommon.dylib (0) <62CC9141-9D59-3545-8768-A18B3538F327> /Users/ktf/work/active/sw/osx_x86-64/Common-O2/v1.2.5-1/lib/libCommon.dylib
       0x10be61000 -        0x10c142fff +libFramework.dylib (0) <6D10384E-1271-32E5-886D-52BF90C0FA1D> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libFramework.dylib
       0x10c444000 -        0x10c4adff7 +libboost_unit_test_framework.dylib (0) <896A2B91-0093-3CAF-AA4D-45A286E0C96E> /Users/ktf/work/active/sw/osx_x86-64/boost/v1.66.0-1/lib/libboost_unit_test_framework.dylib
       0x10c533000 -        0x10c540ff7 +libTimeFrame.dylib (0) <53DB286B-10BF-39AE-8870-2623A398A132> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libTimeFrame.dylib
       0x10c54c000 -        0x10c557fff +libO2Device.dylib (0) <28BE79DD-DDCC-39D0-BDAF-FB3EB12EC9E4> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libO2Device.dylib
       0x10c560000 -        0x10c56bfff +libHeaders.dylib (0) <FFEEF049-37DB-3D20-AEA0-690EA27345FC> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libHeaders.dylib
       0x10c572000 -        0x10c575fff +libboost_random.dylib (0) <52B5CD92-6147-3433-B449-018028CE8F35> /Users/ktf/work/active/sw/osx_x86-64/boost/v1.66.0-1/lib/libboost_random.dylib
       0x10c582000 -        0x10c5a0fff +libReconstructionDataFormats.dylib (0) <0E6C4CDC-E10A-36B1-B9C5-8B45F4D1587B> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libReconstructionDataFormats.dylib
       0x10c5be000 -        0x10c5d5fff +libDetectorsCommonDataFormats.dylib (0) <B116073A-D03E-3044-8CE1-7F4588D76604> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libDetectorsCommonDataFormats.dylib
       0x10c5f0000 -        0x10c623ff7 +libGeoBase.17.dylib (0) <5CAA391B-1D03-3408-8480-6551E8430459> /Users/ktf/work/active/sw/osx_x86-64/FairRoot/0-1/lib/libGeoBase.17.dylib
       0x10c683000 -        0x10c6a8ff7 +libParBase.17.dylib (0) <0FED4005-7066-3061-878C-DA2D87EA9FBF> /Users/ktf/work/active/sw/osx_x86-64/FairRoot/0-1/lib/libParBase.17.dylib
       0x10c6ed000 -        0x10c6fbfff +libVMC.6.14.so (0) <642BEB49-2808-35E6-BD04-8CD883ACF74A> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libVMC.6.14.so
       0x10c71e000 -        0x10c724fff +libMemoryResources.dylib (0) <B9AF00C6-6B3C-34FD-8D74-FC9BB3ABB9B9> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libMemoryResources.dylib
       0x10c72d000 -        0x10c73afff +libboost_container.dylib (0) <D2F806BE-2130-36CD-AEF3-8CECD5DB17F1> /Users/ktf/work/active/sw/osx_x86-64/boost/v1.66.0-1/lib/libboost_container.dylib
       0x10c74f000 -        0x10c779fff +libEG.6.14.so (0) <71BF2A2D-FBC5-3DAF-B04A-D6A4EE8252C4> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libEG.6.14.so
       0x10c7f9000 -        0x10c827fff +libPhysics.6.14.so (0) <CE3DD422-28D1-332E-B3A5-1B551C72936D> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libPhysics.6.14.so
       0x10c859000 -        0x10c85eff3 +libCommonDataFormat.dylib (0) <FFC8F697-35CC-3B62-B89F-84D49D7B092A> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libCommonDataFormat.dylib
       0x10c86c000 -        0x10c875fff +libDataFormatsMID.dylib (0) <F1224B86-E6DE-396D-B2F2-BA23C83A3FEB> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libDataFormatsMID.dylib
       0x10c87b000 -        0x10c9aeff7 +libFairMQ.1.3.dylib (0) <74052BBA-0DE1-3A9B-AE36-7D379F85191C> /Users/ktf/work/active/sw/osx_x86-64/FairMQ/master-1/lib/libFairMQ.1.3.dylib
       0x10cb52000 -        0x10cb55fff +libboost_chrono.dylib (0) <DBBE3975-A066-3FE5-8BB3-274598E75532> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_chrono.dylib
       0x10cb61000 -        0x10cb62fff +libboost_atomic.dylib (0) <2E061CEF-343D-3B4A-A4AF-77D096F050D9> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_atomic.dylib
       0x10cb6b000 -        0x10cb6fff7 +libboost_date_time.dylib (0) <0433C427-4BF7-34FE-8E46-7E7ABDF876BC> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_date_time.dylib
       0x10cb85000 -        0x10cb94ff7 +libboost_filesystem.dylib (0) <52848C4D-8AE9-38CD-9D07-FBBCEA137328> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_filesystem.dylib
       0x10cbaa000 -        0x10cc53ff7 +libboost_regex.dylib (0) <631AF6AB-7333-3B12-8247-80510412FB0E> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_regex.dylib
       0x10cce2000 -        0x10ccf0fff +libFairLogger.1.2.dylib (0) <D688B1F2-0939-3459-BCE7-4F6F12B2AF56> /Users/ktf/work/active/sw/osx_x86-64/FairLogger/v1.2.0-1/lib/libFairLogger.1.2.dylib
       0x10cd07000 -        0x10cd11fff +libboost_signals.dylib (0) <106FEE02-7B55-3A3D-9186-C4F42888D800> /Users/ktf/work/active/sw/osx_x86-64/DDS/2.0-1/lib/libboost_signals.dylib
       0x10cd2a000 -        0x10cd39ff7 +libFairTools.17.dylib (0) <5DF3EA62-9888-3DCD-BA10-B5CB6DCD9729> /Users/ktf/work/active/sw/osx_x86-64/FairRoot/0-1/lib/libFairTools.17.dylib
       0x10cd4e000 -        0x10cd71fff +libboost_serialization.dylib (0) <42A33241-BD7F-33FB-9E0A-9C4CB912534E> /Users/ktf/work/active/sw/osx_x86-64/boost/v1.66.0-1/lib/libboost_serialization.dylib
       0x10cddd000 -        0x10cf37fff +libMathCore.6.14.so (0) <8CB2E12F-850D-31C6-9221-10EA64143EE1> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libMathCore.6.14.so
       0x10d08e000 -        0x10d186fff +libMatrix.6.14.so (0) <94F04807-2CEF-372B-B957-00C491E9C4C9> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libMatrix.6.14.so
       0x10d26b000 -        0x10d2b8ff7 +libMinuit.6.14.so (0) <5567335E-CC84-30E7-B67F-0706CBDF2420> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libMinuit.6.14.so
       0x10d2f0000 -        0x10d4e3fff +libHist.6.14.so (0) <81958711-38D2-3A02-97B8-74F9761943B8> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libHist.6.14.so
       0x10d6e6000 -        0x10d95cff7 +libRIO.6.14.so (0) <045A9EE8-8CDE-3EF9-BC61-AC10494E5CC5> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libRIO.6.14.so
       0x10db22000 -        0x10db53ff7 +libGenVector.6.14.so (0) <15583C61-6C97-3096-B3A8-FB15DB06B990> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libGenVector.6.14.so
       0x10dbfb000 -        0x10dd1dfff +libGeom.6.14.so (0) <43716C71-3606-3CA1-A0CE-25CA60956AFE> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libGeom.6.14.so
       0x10de6c000 -        0x10def1fff +libDebugGUI.dylib (0) <1812703A-53E9-3A75-86DA-E52ECF4671FB> /Users/ktf/work/active/sw/osx_x86-64/O2/dev-1/lib/libDebugGUI.dylib
       0x10df45000 -        0x10df55ffb +libglfw.3.dylib (0) <8D867FC5-5C44-3097-934C-7F1E522813E5> /usr/local/opt/glfw/lib/libglfw.3.dylib
       0x10df68000 -        0x10df78ff3 +libMbsAPI.17.dylib (0) <ED410D5A-D483-3A23-8458-C2216E68ACEB> /Users/ktf/work/active/sw/osx_x86-64/FairRoot/0-1/lib/libMbsAPI.17.dylib
       0x10df87000 -        0x10e073ff7 +libProof.6.14.so (0) <679ABCBF-7085-3C78-8902-5EE635AD007F> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libProof.6.14.so
       0x10e122000 -        0x10e143fff +libGeomPainter.6.14.so (0) <7C81E3BA-378B-37C2-9D86-FCED47FAF2BC> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libGeomPainter.6.14.so
       0x10e165000 -        0x10e1a5fff +libRHTTP.6.14.so (0) <9742E211-8C71-3E0C-90EB-2B7D8C772E7B> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libRHTTP.6.14.so
       0x10e1e0000 -        0x10e216ff7 +libGdml.6.14.so (0) <DA0B1424-A196-3AB4-92D0-52FAE0F22540> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libGdml.6.14.so
       0x10e237000 -        0x10e35fff7 +libGraf.6.14.so (0) <65875052-13A7-3FE1-884D-79E805183487> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libGraf.6.14.so
       0x10e431000 -        0x10e48ffff +libGpad.6.14.so (0) <7CD5C9C5-A775-380E-A005-CE43B2F68467> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libGpad.6.14.so
       0x10e4ff000 -        0x10e548ff7 +libGraf3d.6.14.so (0) <8614ECCA-7929-367B-8A01-CFC90D29CD8F> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libGraf3d.6.14.so
       0x10e5c4000 -        0x10e78aff7 +libGui.6.14.so (0) <803A35F8-1FD7-3D5E-A7D5-2E3376B4311B> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libGui.6.14.so
       0x10ea1c000 -        0x10ea23ff7 +libImt.6.14.so (0) <0462CF1F-A94E-368A-B7B5-754B2C7CEE92> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libImt.6.14.so
       0x10ea3a000 -        0x10ea53fff +libRint.6.14.so (0) <22BA20C8-32E8-3BC9-88D5-BDB4D2BADB99> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libRint.6.14.so
       0x10ea73000 -        0x10eabdff7 +libPostscript.6.14.so (0) <AA2A8864-0C5F-3C23-AA1B-93998ECB5556> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libPostscript.6.14.so
       0x10eaeb000 -        0x10eb07fff +libThread.6.14.so (0) <B7514CE2-90D4-3AEB-BEA2-78638110F100> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libThread.6.14.so
       0x10eb5d000 -        0x10eb64fff +libMultiProc.6.14.so (0) <D869E4D0-EBFD-3A47-A58B-192171B3C5FC> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libMultiProc.6.14.so
       0x10eb79000 -        0x10eb94ff7 +liblzma.5.dylib (0) <423B98CF-7AF0-325D-AB6A-3F44B56B90C2> /usr/local/opt/xz/lib/liblzma.5.dylib
       0x10eb9b000 -        0x10ebb7fff +libtbb.dylib (0) <8B1B00D9-7AF3-329C-B60A-20C2D6D364CF> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libtbb.dylib
       0x10ebe3000 -        0x10ec22fff +libssl.1.0.0.dylib (0) <C81C0881-22EC-3DC7-A686-9C534A003B87> /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
       0x10ec48000 -        0x10edbad9f +libcrypto.1.0.0.dylib (0) <1E288AFF-8074-3191-9CC0-32539D7788BA> /usr/local/Cellar/openssl/1.0.2p/lib/libcrypto.1.0.0.dylib
       0x10ee3a000 -        0x10ee73ff7 +libXMLIO.6.14.so (0) <A6B3AA68-0D44-382C-8F38-70CDF9C80A36> /Users/ktf/work/active/sw/osx_x86-64/ROOT/master-1/lib/libXMLIO.6.14.so
       0x10eeae000 -        0x10eedaffb +libppconsul.0.1.dylib (0) <525BBAE9-AC4A-309B-B3EB-97748807DCFB> /Users/ktf/work/active/sw/osx_x86-64/Ppconsul/0.0.2-1/lib/libppconsul.0.1.dylib
       0x10eef9000 -        0x10ef50ff7 +libzmq.5.dylib (0) <177948E4-6B87-3FB4-8E9F-2501F466E7B7> /usr/local/opt/zeromq/lib/libzmq.5.dylib
       0x10ef86000 -        0x10efabff7 +libnanomsg.5.dylib (0) <EDAB8523-6C3B-3701-85FD-6E6F770DC717> /usr/local/opt/nanomsg/lib/libnanomsg.5.dylib
       0x10efb9000 -        0x10efbdfff +libboost_timer.dylib (0) <DAEB08F0-BD6B-3FFA-9E58-7AD57BB81A13> /Users/ktf/work/active/sw/osx_x86-64/boost/v1.66.0-1/lib/libboost_timer.dylib
       0x10f09d000 -        0x10f0e7acf  dyld (551.4) <8A72DE9C-A136-3506-AA02-4BA2B82DCAF3> /usr/lib/dyld
    0x7fff2d539000 -     0x7fff2d539fff  com.apple.Accelerate (1.11 - Accelerate 1.11) <8632A9C5-19EA-3FD7-A44D-80765CC9C540> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
    0x7fff2d551000 -     0x7fff2da4ffc3  com.apple.vImage (8.1 - ???) <A243A7EF-0C8E-3A9A-AA38-44AFD7507F00> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
    0x7fff2da50000 -     0x7fff2dbaafe3  libBLAS.dylib (1211.50.2) <62C659EB-3E32-3B5F-83BF-79F5DF30D5CE> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
    0x7fff2dbab000 -     0x7fff2dbd9fef  libBNNS.dylib (38.1) <7BAEFDCA-3227-3E07-80D8-59B6370B89C6> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
    0x7fff2dbda000 -     0x7fff2df99ff7  libLAPACK.dylib (1211.50.2) <40ADBA5F-8B2D-30AC-A7AD-7B17C37EE52D> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
    0x7fff2df9a000 -     0x7fff2dfafff7  libLinearAlgebra.dylib (1211.50.2) <E8E0B7FD-A0B7-31E5-AF01-81781F71EBBE> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
    0x7fff2dfb0000 -     0x7fff2dfb5ff3  libQuadrature.dylib (3) <3D6BF66A-55B2-3692-BAC7-DEB0C676ED29> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
    0x7fff2dfb6000 -     0x7fff2e036fff  libSparse.dylib (79.50.2) <0DC25CDD-F8C1-3D6E-B472-8B060708424F> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib
    0x7fff2e037000 -     0x7fff2e04afff  libSparseBLAS.dylib (1211.50.2) <722573CC-31CC-34B2-9032-E4F652A9CCFE> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
    0x7fff2e04b000 -     0x7fff2e1f8fc3  libvDSP.dylib (622.50.5) <40690941-CF89-3F90-A0AC-A4D200744A5D> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
    0x7fff2e1f9000 -     0x7fff2e2aafff  libvMisc.dylib (622.50.5) <BA2532DF-2D68-3DD0-9B59-D434BF702AA4> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
    0x7fff2e2ab000 -     0x7fff2e2abfff  com.apple.Accelerate.vecLib (3.11 - vecLib 3.11) <54FF3B43-E66C-3F36-B34B-A2B3B0A36502> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
    0x7fff2e59f000 -     0x7fff2f3fdfff  com.apple.AppKit (6.9 - 1561.60.100) <3C27CF6F-E640-3411-A87D-CCB2222CC754> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
    0x7fff2f44f000 -     0x7fff2f44ffff  com.apple.ApplicationServices (48 - 50) <AFFBD94A-AF76-336E-B53E-57524EAE8EF3> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
    0x7fff2f450000 -     0x7fff2f4b6fff  com.apple.ApplicationServices.ATS (377 - 445.4) <85E779EE-0219-3181-B4C4-201E4CC82AB5> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
    0x7fff2f54f000 -     0x7fff2f671fff  libFontParser.dylib (222.1.6) <6CEBACDD-B848-302E-B4B2-630CB16E663E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
    0x7fff2f672000 -     0x7fff2f6bcff7  libFontRegistry.dylib (221.4) <5FDB4F1A-E15C-3ACB-A5C1-F15458C0C6DC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
    0x7fff2f7fe000 -     0x7fff2f802ff3  com.apple.ColorSyncLegacy (4.13.0 - 1) <A5FB2694-1559-34A8-A3D3-2029F68A63CA> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy
    0x7fff2f8a2000 -     0x7fff2f8f4ffb  com.apple.HIServices (1.22 - 624.1) <66FD9ED2-9630-313C-86AE-4C2FBCB3F351> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
    0x7fff2f8f5000 -     0x7fff2f903fff  com.apple.LangAnalysis (1.7.0 - 1.7.0) <B65FF7E6-E9B5-34D8-8CA7-63D415A8A9A6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
    0x7fff2f904000 -     0x7fff2f950fff  com.apple.print.framework.PrintCore (13.4 - 503.2) <B90C67C1-0292-3CEC-885D-F1882CD104BE> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
    0x7fff2f951000 -     0x7fff2f98bfff  com.apple.QD (3.12 - 404.2) <38B20AFF-9D54-3B52-A6DC-C0D71380AA5F> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
    0x7fff2f98c000 -     0x7fff2f998fff  com.apple.speech.synthesis.framework (7.8.1 - 7.8.1) <A08DE016-C8F2-3B0E-BD34-15959D13DBF0> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
    0x7fff2f999000 -     0x7fff2fc27ff7  com.apple.audio.toolbox.AudioToolbox (1.14 - 1.14) <E0B8B5D8-80A0-308B-ABD6-F8612102B5D8> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
    0x7fff2fc29000 -     0x7fff2fc29fff  com.apple.audio.units.AudioUnit (1.14 - 1.14) <ABF8778E-4F9D-305E-A528-DE406A1A2B68> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
    0x7fff2ff4c000 -     0x7fff302e6ff7  com.apple.CFNetwork (902.1 - 902.1) <76EB8CB6-BF59-3BDA-BF2B-F21B161611B9> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
    0x7fff30300000 -     0x7fff30605fff  com.apple.HIToolbox (2.1.1 - 911.10) <BF7F9C0E-C732-3FB2-9BBC-362888BDA57B> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
    0x7fff30610000 -     0x7fff306a5ffb  com.apple.ink.framework (10.9 - 221) <5206C8B0-22DA-36C9-998E-846EDB626D5B> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
    0x7fff306e6000 -     0x7fff306ecfff  com.apple.speech.recognition.framework (6.0.3 - 6.0.3) <2ED8643D-B0C3-3F17-82A2-BBF13E6CBABC> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
    0x7fff3080d000 -     0x7fff3080dfff  com.apple.Cocoa (6.11 - 22) <78E6C28E-4308-3D10-AD14-0CBCF6789B3F> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
    0x7fff3081b000 -     0x7fff308d4fff  com.apple.ColorSync (4.13.0 - 3325) <D283C285-447D-3258-A7E4-59532123B8FF> /System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync
    0x7fff30a61000 -     0x7fff30af4ff7  com.apple.audio.CoreAudio (4.3.0 - 4.3.0) <EB35D3EC-56EA-33E6-98DC-BDC3A5FA8ACE> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
    0x7fff30b5b000 -     0x7fff30b84ffb  com.apple.CoreBluetooth (1.0 - 1) <E1335074-9D07-370E-8440-61C4874BAC56> /System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth
    0x7fff30b85000 -     0x7fff30edbfef  com.apple.CoreData (120 - 851) <A2B59780-FB16-36A3-8EE0-E0EF072454E0> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
    0x7fff30edc000 -     0x7fff30fbffff  com.apple.CoreDisplay (99.14 - 99.14) <A1B91ADD-828D-33A0-8A92-CC3F83DF89D0> /System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay
    0x7fff30fc0000 -     0x7fff31461fef  com.apple.CoreFoundation (6.9 - 1454.90) <E5D594BF-9142-3325-A62D-CF4AAF472642> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    0x7fff31463000 -     0x7fff31a73fef  com.apple.CoreGraphics (2.0 - 1161.21) <375C477F-5A89-3C49-9B63-373C81A63F7E> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
    0x7fff31a75000 -     0x7fff31d64fff  com.apple.CoreImage (13.0.0 - 579.5) <AAE2DFD0-9B0A-3D56-8A3E-C460BAF70394> /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage
    0x7fff32139000 -     0x7fff32139fff  com.apple.CoreServices (822.36 - 822.36) <C8368F17-1589-3BA5-A0E7-89CB8DF2454F> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
    0x7fff3213a000 -     0x7fff321aeffb  com.apple.AE (735.1 - 735.1) <08EBA184-20F7-3725-AEA6-C314448161C6> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
    0x7fff321af000 -     0x7fff32486fff  com.apple.CoreServices.CarbonCore (1178.4 - 1178.4) <0D5E19BF-18CB-3FA4-8A5F-F6C787C5EE08> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
    0x7fff32487000 -     0x7fff324bbfff  com.apple.DictionaryServices (1.2 - 284.2) <6505B075-41C3-3C62-A4C3-85CE3F6825CD> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
    0x7fff324bc000 -     0x7fff324c4ffb  com.apple.CoreServices.FSEvents (1239.50.1 - 1239.50.1) <3637CEC7-DF0E-320E-9634-44A442925C65> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
    0x7fff324c5000 -     0x7fff32682fff  com.apple.LaunchServices (822.36 - 822.36) <6E68C090-B12D-3D3D-9617-E5D82C36B2D0> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
    0x7fff32683000 -     0x7fff32733ff7  com.apple.Metadata (10.7.0 - 1191.4.13) <B5C22E70-C265-3C9F-865F-B138994A418D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
    0x7fff32734000 -     0x7fff32794fff  com.apple.CoreServices.OSServices (822.36 - 822.36) <3BB2E0CE-81AE-3D3D-9FCE-E1B7FC6D6A61> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
    0x7fff32795000 -     0x7fff32803fff  com.apple.SearchKit (1.4.0 - 1.4.0) <3662545A-B1CF-3079-BDCD-C83855CEFEEE> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
    0x7fff32804000 -     0x7fff32828ffb  com.apple.coreservices.SharedFileList (71.21 - 71.21) <35582D88-5975-35E2-A29A-E3148C3EE727> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
    0x7fff32ac9000 -     0x7fff32c19fff  com.apple.CoreText (352.0 - 578.22) <6129F39D-284D-3BBF-8999-7854AB61C01C> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
    0x7fff32c1a000 -     0x7fff32c54fff  com.apple.CoreVideo (1.8 - 0.0) <86CCC036-51BB-3DD1-9601-D93798BCCD0F> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
    0x7fff32c55000 -     0x7fff32ce0ff3  com.apple.framework.CoreWLAN (13.0 - 1350.1) <E862CC02-69D2-3503-887B-B6E8223081E7> /System/Library/Frameworks/CoreWLAN.framework/Versions/A/CoreWLAN
    0x7fff32f5b000 -     0x7fff32f60fff  com.apple.DiskArbitration (2.7 - 2.7) <A975AD56-4CD3-3A89-8732-858CA9BD3DAA> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
    0x7fff33121000 -     0x7fff334e7fff  com.apple.Foundation (6.9 - 1454.90) <8EA924F3-ADAE-3F4B-8482-8B11C027D9A5> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
    0x7fff33558000 -     0x7fff33588fff  com.apple.GSS (4.0 - 2.0) <D774A165-5581-3479-AB5D-2BBDB5CF8882> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
    0x7fff3369a000 -     0x7fff3379effb  com.apple.Bluetooth (6.0.7 - 6.0.7f10) <557F26F9-C7A0-34EA-A905-22E243BF6B48> /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
    0x7fff337fe000 -     0x7fff33899fff  com.apple.framework.IOKit (2.0.2 - 1445.71.1) <2EA4F383-CAA9-3AF0-99C5-90C22ADAA6B6> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
    0x7fff3389b000 -     0x7fff338a2fff  com.apple.IOSurface (211.15 - 211.15) <9FD406F1-6BF2-35B0-8339-DF83A1A661EB> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
    0x7fff338f9000 -     0x7fff33a73ff7  com.apple.ImageIO.framework (3.3.0 - 1739.3) <7C579D3F-AE0B-31C9-8F80-67F2290B8DE0> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
    0x7fff33a74000 -     0x7fff33a78ffb  libGIF.dylib (1739.3) <7AA44C9D-48E8-3090-B044-61FE6F0AEF38> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
    0x7fff33a79000 -     0x7fff33b60fef  libJP2.dylib (1739.3) <AEBF7260-0C10-30C0-8F0F-8B347DEE78B3> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
    0x7fff33b61000 -     0x7fff33b84ff7  libJPEG.dylib (1739.3) <D8C966AD-A00C-3E8B-A7ED-D7CC7ECB3224> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
    0x7fff33e60000 -     0x7fff33e86feb  libPng.dylib (1739.3) <1737F680-99D1-3F03-BFA5-5CDA30EB880A> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
    0x7fff33e87000 -     0x7fff33e89ffb  libRadiance.dylib (1739.3) <21746434-FCC7-36DE-9331-11277DF66AA8> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
    0x7fff33e8a000 -     0x7fff33ed8fef  libTIFF.dylib (1739.3) <C4CB5C1D-20F2-3BD4-B0E6-629FDB3EF8E8> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
    0x7fff34d92000 -     0x7fff34dabff7  com.apple.Kerberos (3.0 - 1) <F86DCCDF-93C1-38B3-82C2-477C12E8EE6D> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
    0x7fff34dac000 -     0x7fff34de1fff  com.apple.LDAPFramework (2.4.28 - 194.5) <08888215-BBCE-3402-8142-2C9ADB091580> /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
    0x7fff3578d000 -     0x7fff3580efff  com.apple.Metal (125.30 - 125.30) <975FD6B5-D695-346A-869F-0584A968D100> /System/Library/Frameworks/Metal.framework/Versions/A/Metal
    0x7fff3582b000 -     0x7fff35846fff  com.apple.MetalPerformanceShaders.MPSCore (1.0 - 1) <AD754E8F-CA00-3878-9AF3-208C224A230B> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Versions/A/MPSCore
    0x7fff35847000 -     0x7fff358b6fef  com.apple.MetalPerformanceShaders.MPSImage (1.0 - 1) <338B7779-E608-3D68-8A07-2ACC11299744> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/Versions/A/MPSImage
    0x7fff358b7000 -     0x7fff358dbfff  com.apple.MetalPerformanceShaders.MPSMatrix (1.0 - 1) <9CE072D7-853B-3939-9645-7EB951376B87> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix
    0x7fff358dc000 -     0x7fff359c3ff7  com.apple.MetalPerformanceShaders.MPSNeuralNetwork (1.0 - 1) <0DE891AD-27E5-38FF-AEC8-4A95356C4357> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork
    0x7fff359c4000 -     0x7fff359c4ff7  com.apple.MetalPerformanceShaders.MetalPerformanceShaders (1.0 - 1) <2D2D261C-50B0-32F9-BF9A-5C01382BB528> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders
    0x7fff369c3000 -     0x7fff369cfffb  com.apple.NetFS (6.0 - 4.0) <471DD96F-FA2E-3FE9-9746-2519A6780D1A> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
    0x7fff397c1000 -     0x7fff3981bff7  com.apple.opencl (2.8.24 - 2.8.24) <4D7401A7-6ADD-3632-85AE-7A5012DFFA04> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
    0x7fff3981c000 -     0x7fff39838ffb  com.apple.CFOpenDirectory (10.13 - 207.50.1) <29F55F7B-379F-3053-8FF3-5C6675A3DD4D> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
    0x7fff39839000 -     0x7fff39844fff  com.apple.OpenDirectory (10.13 - 207.50.1) <F895547D-4915-353F-9C1E-E95172BA803B> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
    0x7fff3a9c3000 -     0x7fff3a9c5fff  libCVMSPluginSupport.dylib (16.7.4) <F9270AE0-CC3B-3E3E-BA32-CC1068DD8F27> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
    0x7fff3a9c6000 -     0x7fff3a9cbffb  libCoreFSCache.dylib (162.9) <7AF87F3E-D5D0-3625-BE09-CA4223195466> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib
    0x7fff3a9cc000 -     0x7fff3a9d0fff  libCoreVMClient.dylib (162.9) <115FE643-6141-39B4-8193-77DFCBE7A4E0> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
    0x7fff3a9d1000 -     0x7fff3a9daff3  libGFXShared.dylib (16.7.4) <EB2BF8A0-E10D-35EA-8F46-B2E3C62C12A8> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
    0x7fff3a9db000 -     0x7fff3a9e6fff  libGL.dylib (16.7.4) <2BB333D3-5C61-33DF-8545-06DF2D08B83D> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
    0x7fff3a9e7000 -     0x7fff3aa22fe7  libGLImage.dylib (16.7.4) <4DA003CE-0B74-3FE4-808C-B2FBCE517EB4> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
    0x7fff3ab91000 -     0x7fff3abcfffb  libGLU.dylib (16.7.4) <BCB09CD8-EB0E-38FA-8B5A-9E29532EE364> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
    0x7fff3b547000 -     0x7fff3b556ff3  com.apple.opengl (16.7.4 - 16.7.4) <9BDE8FF9-5418-3C70-8D1C-09656884CE48> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
    0x7fff3c3a5000 -     0x7fff3c5f1ff7  com.apple.QuartzCore (1.11 - 584.62) <1950D993-DE48-3C97-95A5-66D98BDFC95D> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
    0x7fff3ce26000 -     0x7fff3d151fff  com.apple.security (7.0 - 58286.70.7) <9FC166E1-14D0-305C-A086-02B9E83F547E> /System/Library/Frameworks/Security.framework/Versions/A/Security
    0x7fff3d152000 -     0x7fff3d1deff7  com.apple.securityfoundation (6.0 - 55185.50.5) <D708D069-AEDB-36C2-B1DA-479DA91D7711> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
    0x7fff3d210000 -     0x7fff3d214ffb  com.apple.xpc.ServiceManagement (1.0 - 1) <71B45D83-ECA4-3265-997E-683A8B8DF413> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
    0x7fff3d5b9000 -     0x7fff3d629ff3  com.apple.SystemConfiguration (1.17 - 1.17) <8532B8E9-7E30-35A3-BC4A-DDE8E0614FDA> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
    0x7fff40526000 -     0x7fff405b9fff  com.apple.APFS (1.0 - 1) <6BBB3988-1C91-314F-A77A-4E093A1B18F0> /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
    0x7fff411e4000 -     0x7fff4120cfff  com.apple.framework.Apple80211 (13.0 - 1361.7) <16627876-8CF5-3502-A1D6-35FCBDD5E79A> /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211
    0x7fff4120e000 -     0x7fff4121dfef  com.apple.AppleFSCompression (96.60.1 - 1.0) <A7C875C4-F5EE-3272-AFB6-57C9FD5352B3> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
    0x7fff4131c000 -     0x7fff41327ff7  com.apple.AppleIDAuthSupport (1.0 - 1) <2FAF5567-CDB3-33EF-AB71-05D37F2248B7> /System/Library/PrivateFrameworks/AppleIDAuthSupport.framework/Versions/A/AppleIDAuthSupport
    0x7fff41361000 -     0x7fff413a9ff3  com.apple.AppleJPEG (1.0 - 1) <8DD410CB-76A1-3F22-9A9F-0491FA0CEB4A> /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG
    0x7fff413db000 -     0x7fff413e3ff3  com.apple.AppleSRP (5.0 - 1) <4CEC34CF-63E3-3023-B61B-F8D133698534> /System/Library/PrivateFrameworks/AppleSRP.framework/Versions/A/AppleSRP
    0x7fff413e4000 -     0x7fff4140cfff  com.apple.applesauce (1.0 - ???) <CCA8B094-1BCE-3AE3-A0A7-D544C818DE36> /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce
    0x7fff4185e000 -     0x7fff41af7ffb  com.apple.AuthKit (1.0 - 1) <6CA71A11-91C5-307C-B933-9FCDEDCB580A> /System/Library/PrivateFrameworks/AuthKit.framework/Versions/A/AuthKit
    0x7fff41c2e000 -     0x7fff41c35ff7  com.apple.coreservices.BackgroundTaskManagement (1.0 - 57.1) <51A41CA3-DB1D-3380-993E-99C54AEE518E> /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement
    0x7fff41c36000 -     0x7fff41cbdff7  com.apple.backup.framework (1.9.5 - 1.9.5) <5E7B0925-8C71-353D-BB0F-9CA144BB264C> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
    0x7fff43677000 -     0x7fff43680ff3  com.apple.CommonAuth (4.0 - 2.0) <4D237B25-27E5-3577-948B-073659F6D3C0> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
    0x7fff4400f000 -     0x7fff44018ff7  com.apple.frameworks.CoreDaemon (1.3 - 1.3) <35A43584-2AF8-3202-A139-27D916E444BE> /System/Library/PrivateFrameworks/CoreDaemon.framework/Versions/B/CoreDaemon
    0x7fff44186000 -     0x7fff44196ff7  com.apple.CoreEmoji (1.0 - 69.3) <A4357F5C-0C38-3A61-B456-D7321EB2CEE5> /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
    0x7fff4492a000 -     0x7fff44932ff3  com.apple.CorePhoneNumbers (1.0 - 1) <A5D41251-9F38-3AB9-9DE7-F77023FAAA44> /System/Library/PrivateFrameworks/CorePhoneNumbers.framework/Versions/A/CorePhoneNumbers
    0x7fff44e2b000 -     0x7fff44ebcfff  com.apple.CoreSymbolication (9.3 - 64026.2) <D55A6E5B-0267-3F3A-8D90-4B8F39458420> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
    0x7fff44f3f000 -     0x7fff45074fff  com.apple.coreui (2.1 - 494.1) <B2C515C3-FCE8-3B28-A225-05AD917F509B> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
    0x7fff45075000 -     0x7fff451a6fff  com.apple.CoreUtils (5.6 - 560.11) <1A02D6F0-8C65-3FAE-AD63-56477EDE4773> /System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils
    0x7fff451fb000 -     0x7fff4525ffff  com.apple.framework.CoreWiFi (13.0 - 1350.1) <6EC5DEB3-6E2F-3DC2-BE59-1FD05175FB0C> /System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi
    0x7fff45260000 -     0x7fff45270ff7  com.apple.CrashReporterSupport (10.13 - 1) <A909F468-0648-3F51-A77E-3F9ADBC9A941> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
    0x7fff452ee000 -     0x7fff452fdff7  com.apple.framework.DFRFoundation (1.0 - 191.7) <5F486F5A-3795-3CD4-86A2-FD008A23F205> /System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation
    0x7fff45300000 -     0x7fff45304ffb  com.apple.DSExternalDisplay (3.1 - 380) <901B7F6D-376A-3848-99D0-170C4D00F776> /System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay
    0x7fff45386000 -     0x7fff453fcfff  com.apple.datadetectorscore (7.0 - 590.3) <7437160E-68A3-3FD7-8868-5E3F92E23C4F> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
    0x7fff4544a000 -     0x7fff4548aff7  com.apple.DebugSymbols (181.0 - 181.0) <299A0238-ED78-3676-B131-274D972824AA> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
    0x7fff4548b000 -     0x7fff455bafff  com.apple.desktopservices (1.12.5 - 1.12.5) <7739C9A5-64D9-31A5-899B-5FFA242AD70D> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
    0x7fff463d4000 -     0x7fff46802fff  com.apple.vision.FaceCore (3.3.2 - 3.3.2) <B574FE33-4A41-3611-9738-388EBAF03E37> /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
    0x7fff49aca000 -     0x7fff49acffff  com.apple.GPUWrangler (3.20.13 - 3.20.13) <9C5BD618-69E3-36D5-9BC9-A4841BC00D2A> /System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler
    0x7fff4a845000 -     0x7fff4a854fff  com.apple.GraphVisualizer (1.0 - 5) <B993B8A2-5700-3DFC-9EB7-4CCEE8F959F1> /System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer
    0x7fff4a8d7000 -     0x7fff4a94bfff  com.apple.Heimdal (4.0 - 2.0) <93091531-CC91-34FF-8B93-5D3F02C37BC5> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
    0x7fff4b25b000 -     0x7fff4b262ff7  com.apple.IOAccelerator (378.26 - 378.26) <2274BE11-18DE-3B13-BCDB-C488C9BB19AD> /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator
    0x7fff4b266000 -     0x7fff4b27dfff  com.apple.IOPresentment (1.0 - 35.1) <7C6332FF-6535-3064-B437-1E9F70671927> /System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment
    0x7fff4b648000 -     0x7fff4b66effb  com.apple.IconServices (97.6 - 97.6) <A56D826D-20D2-34BE-AACC-A80CFCB4E915> /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
    0x7fff4b8f3000 -     0x7fff4b906ff3  com.apple.security.KeychainCircle.KeychainCircle (1.0 - 1) <AED421B0-90A0-3969-98A4-CCBCF2D3360B> /System/Library/PrivateFrameworks/KeychainCircle.framework/Versions/A/KeychainCircle
    0x7fff4b907000 -     0x7fff4b9fcff7  com.apple.LanguageModeling (1.0 - 159.5.3) <7F0AC200-E3DD-39FB-8A95-00DD70B66A9F> /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
    0x7fff4b9fd000 -     0x7fff4ba3ffff  com.apple.Lexicon-framework (1.0 - 33.5) <DC94CF9E-1EB4-3C0E-B298-CA1190885276> /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon
    0x7fff4ba43000 -     0x7fff4ba4aff7  com.apple.LinguisticData (1.0 - 238.3) <49A54649-1021-3DBD-99B8-1B2EDFFA5378> /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData
    0x7fff4c75c000 -     0x7fff4c7c5ff7  com.apple.gpusw.MetalTools (1.0 - 1) <458F319A-2707-3C83-8351-BD9F02EC05BD> /System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools
    0x7fff4c945000 -     0x7fff4c95efff  com.apple.MobileKeyBag (2.0 - 1.0) <32E63C7B-E133-33DE-A593-C3C10D64FCAA> /System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag
    0x7fff4c9ea000 -     0x7fff4ca14ffb  com.apple.MultitouchSupport.framework (1404.4 - 1404.4) <45374A2A-C0BC-3A70-8183-37295205CDFA> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
    0x7fff4cc7b000 -     0x7fff4cc86fff  com.apple.NetAuth (6.2 - 6.2) <B3795F63-C14A-33E1-9EE6-02A2E7661321> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
    0x7fff4e51c000 -     0x7fff4e52cffb  com.apple.PerformanceAnalysis (1.194 - 194) <2844933E-B71C-3BE9-9A84-27B29E111F13> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
    0x7fff502eb000 -     0x7fff50309fff  com.apple.ProtocolBuffer (1 - 260) <40704740-4A53-3010-A49B-08D1D69D1D5E> /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer
    0x7fff504e4000 -     0x7fff50507ffb  com.apple.RemoteViewServices (2.0 - 125) <592323D1-CB44-35F1-9921-4C2AB8D920A0> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
    0x7fff51e26000 -     0x7fff51f3bff7  com.apple.Sharing (1050.22.2 - 1050.22.2) <4E3CCDF2-EA26-334F-8EBA-79BD28486C9D> /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing
    0x7fff51f66000 -     0x7fff51f67ff7  com.apple.performance.SignpostNotification (1.2.6 - 2.6) <8F04800F-3570-3392-A24D-B229FF03F7F9> /System/Library/PrivateFrameworks/SignpostNotification.framework/Versions/A/SignpostNotification
    0x7fff52caf000 -     0x7fff52f4bff7  com.apple.SkyLight (1.600.0 - 312.103) <27F91170-846C-3E9E-9B8A-788F27C7DAF5> /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
    0x7fff53714000 -     0x7fff53721fff  com.apple.SpeechRecognitionCore (4.6.1 - 4.6.1) <87EE7AB5-6925-3D21-BE00-F155CB457699> /System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore
    0x7fff542c7000 -     0x7fff54350fc7  com.apple.Symbolication (9.3 - 64033) <C2C55C9A-C264-3044-A953-16457148190A> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
    0x7fff548c1000 -     0x7fff548c9ff7  com.apple.TCC (1.0 - 1) <E1EB7272-FE6F-39AB-83CA-B2B5F2A88D9B> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
    0x7fff54ad6000 -     0x7fff54b93ff7  com.apple.TextureIO (3.7 - 3.7) <F8BAC954-405D-3CC3-AB7B-048C866EF980> /System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO
    0x7fff54c3d000 -     0x7fff54c3efff  com.apple.TrustEvaluationAgent (2.0 - 31) <39F533B2-211E-3635-AF47-23F27749FF4A> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
    0x7fff54c44000 -     0x7fff54df3fff  com.apple.UIFoundation (1.0 - 547.5) <86A2FBA7-2709-3894-A3D5-A00C19BAC48D> /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation
    0x7fff564fc000 -     0x7fff564feffb  com.apple.loginsupport (1.0 - 1) <D1232C1B-80EA-3DF8-9466-013695D0846E> /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport
    0x7fff56665000 -     0x7fff56698ff7  libclosured.dylib (551.4) <3FB6B209-51F4-38DA-B1D8-2EE29D5BDD83> /usr/lib/closure/libclosured.dylib
    0x7fff56752000 -     0x7fff5678bff7  libCRFSuite.dylib (41) <FE5EDB68-2593-3C2E-BBAF-1C52D206F296> /usr/lib/libCRFSuite.dylib
    0x7fff5678c000 -     0x7fff56797fff  libChineseTokenizer.dylib (28) <53633C9B-A3A8-36F7-A53C-432D802F4BB8> /usr/lib/libChineseTokenizer.dylib
    0x7fff56829000 -     0x7fff5682aff3  libDiagnosticMessagesClient.dylib (104) <9712E980-76EE-3A89-AEA6-DF4BAF5C0574> /usr/lib/libDiagnosticMessagesClient.dylib
    0x7fff56861000 -     0x7fff56a2bff3  libFosl_dynamic.dylib (17.8) <C58ED77A-4986-31C2-994C-34DDFB8106F0> /usr/lib/libFosl_dynamic.dylib
    0x7fff56a63000 -     0x7fff56a63fff  libOpenScriptingUtil.dylib (174) <610F0242-7CE5-3C86-951B-B646562694AF> /usr/lib/libOpenScriptingUtil.dylib
    0x7fff56b9a000 -     0x7fff56b9effb  libScreenReader.dylib (562.18.4) <E239923D-54C9-3BBF-852F-87C09DEF4091> /usr/lib/libScreenReader.dylib
    0x7fff56b9f000 -     0x7fff56ba0ffb  libSystem.B.dylib (1252.50.4) <CD555F3B-FDDB-35E5-A2FB-FBBF3D62031A> /usr/lib/libSystem.B.dylib
    0x7fff56c33000 -     0x7fff56c33fff  libapple_crypto.dylib (109.50.14) <48BA2E76-BF2F-3522-A54E-D7FB7EAF7A57> /usr/lib/libapple_crypto.dylib
    0x7fff56c34000 -     0x7fff56c4aff7  libapple_nghttp2.dylib (1.24) <01402BC4-4822-3676-9C80-50D83F816424> /usr/lib/libapple_nghttp2.dylib
    0x7fff56c4b000 -     0x7fff56c75ff3  libarchive.2.dylib (54) <8FC28DD8-E315-3C3E-95FE-D1D2CBE49888> /usr/lib/libarchive.2.dylib
    0x7fff56c76000 -     0x7fff56cf7fdf  libate.dylib (1.13.1) <178ACDAD-DE7E-346C-A613-1CBF7929AC07> /usr/lib/libate.dylib
    0x7fff56cfb000 -     0x7fff56cfbff3  libauto.dylib (187) <A05C7900-F8C7-3E75-8D3F-909B40C19717> /usr/lib/libauto.dylib
    0x7fff56cfc000 -     0x7fff56db4ff3  libboringssl.dylib (109.50.14) <E6813F87-B5E4-3F7F-A725-E6A7F2BD02EC> /usr/lib/libboringssl.dylib
    0x7fff56db5000 -     0x7fff56dc5ff3  libbsm.0.dylib (39) <6BC96A72-AFBE-34FD-91B1-748A530D8AE6> /usr/lib/libbsm.0.dylib
    0x7fff56dc6000 -     0x7fff56dd3ffb  libbz2.1.0.dylib (38) <0A5086BB-4724-3C14-979D-5AD4F26B5B45> /usr/lib/libbz2.1.0.dylib
    0x7fff56dd4000 -     0x7fff56e2afff  libc++.1.dylib (400.9) <7D3DACCC-3804-393C-ABC1-1A580FD00CB6> /usr/lib/libc++.1.dylib
    0x7fff56e2b000 -     0x7fff56e4fff7  libc++abi.dylib (400.8.2) <EF5E37D7-11D9-3530-BE45-B986612D13E2> /usr/lib/libc++abi.dylib
    0x7fff56e51000 -     0x7fff56e61fff  libcmph.dylib (6) <A5509EE8-7E00-3224-8814-015B077A3CF5> /usr/lib/libcmph.dylib
    0x7fff56e62000 -     0x7fff56e79fcf  libcompression.dylib (47.60.2) <543F07BF-2F2F-37D5-9866-E84BF659885B> /usr/lib/libcompression.dylib
    0x7fff57124000 -     0x7fff5713cff7  libcoretls.dylib (155.50.1) <D350052E-DC4D-3185-ADBA-BA48EDCEE955> /usr/lib/libcoretls.dylib
    0x7fff5713d000 -     0x7fff5713eff3  libcoretls_cfhelpers.dylib (155.50.1) <B297F5D8-F2FE-3566-A752-E9D998B9C039> /usr/lib/libcoretls_cfhelpers.dylib
    0x7fff572d7000 -     0x7fff57468fff  libcrypto.35.dylib (22.50.2) <97828BFD-4675-35DF-BE2E-C6D1555BB71D> /usr/lib/libcrypto.35.dylib
    0x7fff5760f000 -     0x7fff57665ff3  libcups.2.dylib (462.2.4) <908099FB-C70E-38FA-9573-88CB98FDDE29> /usr/lib/libcups.2.dylib
    0x7fff57690000 -     0x7fff576e4ffb  libcurl.4.dylib (105.40.1) <B04E7791-EAF9-3D72-B4ED-DD8F135140EC> /usr/lib/libcurl.4.dylib
    0x7fff577a5000 -     0x7fff577a5fff  libenergytrace.dylib (16) <A92AB8B8-B986-3CE6-980D-D55090FEF387> /usr/lib/libenergytrace.dylib
    0x7fff577dc000 -     0x7fff577e1ff3  libheimdal-asn1.dylib (520.50.6) <E358445A-B84E-31B5-BCCD-7E1397519D96> /usr/lib/libheimdal-asn1.dylib
    0x7fff5780d000 -     0x7fff578feff7  libiconv.2.dylib (51.50.1) <2FEC9707-3FAF-3828-A50D-8605086D060F> /usr/lib/libiconv.2.dylib
    0x7fff578ff000 -     0x7fff57b26ffb  libicucore.A.dylib (59180.0.1) <34EBADD6-4092-30EC-90E8-F75241E94D76> /usr/lib/libicucore.A.dylib
    0x7fff57b73000 -     0x7fff57b74fff  liblangid.dylib (128) <39C39393-0D05-301D-93B2-F224FC4949AA> /usr/lib/liblangid.dylib
    0x7fff57b75000 -     0x7fff57b8effb  liblzma.5.dylib (10) <3D419A50-961F-37D2-8A01-3DC7AB7B8D18> /usr/lib/liblzma.5.dylib
    0x7fff57b8f000 -     0x7fff57ba5ff7  libmarisa.dylib (9) <D6D2D55D-1D2E-3442-B152-B18803C0ABB4> /usr/lib/libmarisa.dylib
    0x7fff57c56000 -     0x7fff57e7eff7  libmecabra.dylib (779.7.6) <F462F170-E872-3D09-B219-973D5E99C09F> /usr/lib/libmecabra.dylib
    0x7fff58056000 -     0x7fff581d1fff  libnetwork.dylib (1229.70.2) <E185D902-AC7F-3044-87C0-AE2887C59CE7> /usr/lib/libnetwork.dylib
    0x7fff58258000 -     0x7fff586467e7  libobjc.A.dylib (723) <DD9E5EC5-B507-3249-B700-93433E2D5EDF> /usr/lib/libobjc.A.dylib
    0x7fff58659000 -     0x7fff5865dfff  libpam.2.dylib (22) <7B4D2CE2-1438-387A-9802-5CEEFBF26F86> /usr/lib/libpam.2.dylib
    0x7fff58660000 -     0x7fff58694fff  libpcap.A.dylib (79.20.1) <FA13918B-A247-3181-B256-9B852C7BA316> /usr/lib/libpcap.A.dylib
    0x7fff58713000 -     0x7fff5872fffb  libresolv.9.dylib (65) <E8F3415B-4472-3202-8901-41FD87981DB2> /usr/lib/libresolv.9.dylib
    0x7fff5876b000 -     0x7fff5877dfff  libsasl2.2.dylib (211) <04EF3F61-12EC-3319-A649-851999F4C7A4> /usr/lib/libsasl2.2.dylib
    0x7fff58780000 -     0x7fff58913ff7  libsqlite3.dylib (274.8.1) <FCAD6A57-829E-3701-B16E-1833D620E0E8> /usr/lib/libsqlite3.dylib
    0x7fff5896f000 -     0x7fff589c2ffb  libssl.35.dylib (22.50.2) <AF523E9B-7183-3A87-8FB4-E26936EC4FDB> /usr/lib/libssl.35.dylib
    0x7fff58ae7000 -     0x7fff58b47ff3  libusrtcp.dylib (1229.70.2) <1E065228-D0E3-3808-9405-894056C6BEC0> /usr/lib/libusrtcp.dylib
    0x7fff58b48000 -     0x7fff58b4bffb  libutil.dylib (51.20.1) <216D18E5-0BAF-3EAF-A38E-F6AC37CBABD9> /usr/lib/libutil.dylib
    0x7fff58b4c000 -     0x7fff58b59fff  libxar.1.dylib (400) <0316128D-3B47-3052-995D-97B4FE5491DC> /usr/lib/libxar.1.dylib
    0x7fff58b5d000 -     0x7fff58c44fff  libxml2.2.dylib (31.11) <C2B5C43F-9C0B-31E6-8EC0-939591EDAC49> /usr/lib/libxml2.2.dylib
    0x7fff58c45000 -     0x7fff58c6dfff  libxslt.1.dylib (15.12) <4A5E011D-8B29-3135-A52B-9A9070ABD752> /usr/lib/libxslt.1.dylib
    0x7fff58c6e000 -     0x7fff58c80ffb  libz.1.dylib (70) <48C67CFC-940D-3857-8DAD-857774605352> /usr/lib/libz.1.dylib
    0x7fff58d1c000 -     0x7fff58d20ff7  libcache.dylib (80) <092479CB-1008-3A83-BECF-E115F24D13C1> /usr/lib/system/libcache.dylib
    0x7fff58d21000 -     0x7fff58d2bff3  libcommonCrypto.dylib (60118.50.1) <029F5985-9B6E-3DCB-9B96-FD007678C6A7> /usr/lib/system/libcommonCrypto.dylib
    0x7fff58d2c000 -     0x7fff58d33fff  libcompiler_rt.dylib (62) <968B8E3F-3681-3230-9D78-BB8732024F6E> /usr/lib/system/libcompiler_rt.dylib
    0x7fff58d34000 -     0x7fff58d3dffb  libcopyfile.dylib (146.50.5) <3885083D-50D8-3EEC-B481-B2E605180D7F> /usr/lib/system/libcopyfile.dylib
    0x7fff58d3e000 -     0x7fff58dc3fff  libcorecrypto.dylib (562.70.1) <5C26364F-2269-31EC-84AF-0FED2C902E38> /usr/lib/system/libcorecrypto.dylib
    0x7fff58e4b000 -     0x7fff58e84ff7  libdispatch.dylib (913.60.2) <232C69BD-022E-3AB9-8807-79F9FA7CB5EC> /usr/lib/system/libdispatch.dylib
    0x7fff58e85000 -     0x7fff58ea2ff7  libdyld.dylib (551.4) <81BF3A82-5719-3B54-ABA9-76C82D932CAC> /usr/lib/system/libdyld.dylib
    0x7fff58ea3000 -     0x7fff58ea3ffb  libkeymgr.dylib (28) <E34E283E-90FA-3C59-B48E-1277CDB9CDCE> /usr/lib/system/libkeymgr.dylib
    0x7fff58ea4000 -     0x7fff58eb0ff3  libkxld.dylib (4570.71.2) <C3C31E1B-3E74-3828-8429-4D442E26D41C> /usr/lib/system/libkxld.dylib
    0x7fff58eb1000 -     0x7fff58eb1ff7  liblaunch.dylib (1205.70.9) <B184B521-FF24-3142-AFAF-23D170CF918C> /usr/lib/system/liblaunch.dylib
    0x7fff58eb2000 -     0x7fff58eb6ffb  libmacho.dylib (906) <1902A611-081A-3452-B11E-EBD1B166E831> /usr/lib/system/libmacho.dylib
    0x7fff58eb7000 -     0x7fff58eb9ff3  libquarantine.dylib (86) <26C0BA22-8F93-3A07-9A4E-C8D53D2CE42E> /usr/lib/system/libquarantine.dylib
    0x7fff58eba000 -     0x7fff58ebbff3  libremovefile.dylib (45) <711E18B2-5BBE-3211-A916-56740C27D17A> /usr/lib/system/libremovefile.dylib
    0x7fff58ebc000 -     0x7fff58ed3fff  libsystem_asl.dylib (356.70.1) <39E46A6F-B228-3E78-B83E-1779F9707A39> /usr/lib/system/libsystem_asl.dylib
    0x7fff58ed4000 -     0x7fff58ed4fff  libsystem_blocks.dylib (67) <17303FDF-0D2D-3963-B05E-B4DF63052D47> /usr/lib/system/libsystem_blocks.dylib
    0x7fff58ed5000 -     0x7fff58f5eff7  libsystem_c.dylib (1244.50.9) <1187BFE8-4576-3247-8177-481554E1F9E7> /usr/lib/system/libsystem_c.dylib
    0x7fff58f5f000 -     0x7fff58f62ffb  libsystem_configuration.dylib (963.50.8) <DF6B5287-203E-30CB-9947-78DF446C72B8> /usr/lib/system/libsystem_configuration.dylib
    0x7fff58f63000 -     0x7fff58f66ffb  libsystem_coreservices.dylib (51) <486000D3-D8CB-3BE7-8EE5-8BF380DE6DF7> /usr/lib/system/libsystem_coreservices.dylib
    0x7fff58f67000 -     0x7fff58f68fff  libsystem_darwin.dylib (1244.50.9) <09C21A4A-9EE0-388B-A9D9-DFF8F6758791> /usr/lib/system/libsystem_darwin.dylib
    0x7fff58f69000 -     0x7fff58f6fff7  libsystem_dnssd.dylib (878.70.2) <3290768B-54DE-3AB6-B155-AC0950AC5564> /usr/lib/system/libsystem_dnssd.dylib
    0x7fff58f70000 -     0x7fff58fb9ff7  libsystem_info.dylib (517.30.1) <AB634A98-B8AA-3804-8436-38261FC8EC4D> /usr/lib/system/libsystem_info.dylib
    0x7fff58fba000 -     0x7fff58fe0ff7  libsystem_kernel.dylib (4570.71.2) <F22B8D73-69D8-36D7-BF66-7F9AC70C08C2> /usr/lib/system/libsystem_kernel.dylib
    0x7fff58fe1000 -     0x7fff5902cfcb  libsystem_m.dylib (3147.50.1) <8CFB51C9-B422-3379-8552-064C63943A23> /usr/lib/system/libsystem_m.dylib
    0x7fff5902d000 -     0x7fff5904cfff  libsystem_malloc.dylib (140.50.6) <7FD43735-9DDD-300E-8C4A-F909A74BDF49> /usr/lib/system/libsystem_malloc.dylib
    0x7fff5904d000 -     0x7fff5917dff7  libsystem_network.dylib (1229.70.2) <5E86B2DE-9E15-3354-8714-4094ED5F698D> /usr/lib/system/libsystem_network.dylib
    0x7fff5917e000 -     0x7fff59188ffb  libsystem_networkextension.dylib (767.70.1) <D23EAFC1-E8BD-34D5-969C-6E45A1C3B4E4> /usr/lib/system/libsystem_networkextension.dylib
    0x7fff59189000 -     0x7fff59192ff3  libsystem_notify.dylib (172) <08012EC0-2CD2-34BE-BF93-E7F56491299A> /usr/lib/system/libsystem_notify.dylib
    0x7fff59193000 -     0x7fff5919aff7  libsystem_platform.dylib (161.50.1) <6355EE2D-5456-3CA8-A227-B96E8F1E2AF8> /usr/lib/system/libsystem_platform.dylib
    0x7fff5919b000 -     0x7fff591a6fff  libsystem_pthread.dylib (301.50.1) <0E51CCBA-91F2-34E1-BF2A-FEEFD3D321E4> /usr/lib/system/libsystem_pthread.dylib
    0x7fff591a7000 -     0x7fff591aafff  libsystem_sandbox.dylib (765.70.1) <553DFCC6-9D31-3B9C-AB7C-30F6F265786D> /usr/lib/system/libsystem_sandbox.dylib
    0x7fff591ab000 -     0x7fff591acff3  libsystem_secinit.dylib (30) <DE8D14E8-A276-3FF8-AE13-77F7040F33C1> /usr/lib/system/libsystem_secinit.dylib
    0x7fff591ad000 -     0x7fff591b4ff7  libsystem_symptoms.dylib (820.60.2) <585BDFA2-D54D-39D0-8046-44E824DABD43> /usr/lib/system/libsystem_symptoms.dylib
    0x7fff591b5000 -     0x7fff591c8fff  libsystem_trace.dylib (829.70.1) <3A6CB706-8CA6-3616-8AFC-14AAD7FAF187> /usr/lib/system/libsystem_trace.dylib
    0x7fff591ca000 -     0x7fff591cfff7  libunwind.dylib (35.3) <BEF3FB49-5604-3B5F-82B5-332B80023AC3> /usr/lib/system/libunwind.dylib
    0x7fff591d0000 -     0x7fff591fdff7  libxpc.dylib (1205.70.9) <0BC7AD67-671D-31D4-8B88-C317B8379598> /usr/lib/system/libxpc.dylib
Sample analysis of process 97930 written to file /dev/stdout

notice how runDataProcessing.cxx:733 is a catch (std::exception& e). Moving the DeviceRunner out of the try..catch does not work either.

sleeping in ConditionalRun inhibits SIGINT

I've a device which overrides ConditionalRun() and sleeps for a long time. Looks like any external SIGINT / SIGTERM sent to it is delayed until the end of the sleep. Is that expected? How can I have some interruptible sleep for a given device?

Deadlock on sleep

Whenever one sleeps in the ConditionalRun, FairMQ deadlocks with it at:

    frame #0: 0x00007fff73f4e7de libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff74008593 libsystem_pthread.dylib`_pthread_cond_wait + 724
    frame #2: 0x00007fff714e7bda libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18
    frame #3: 0x0000000109f1b6cb libFairMQ.1.3.dylib`void fair::mq::fsm::Machine_::StopFct::operator(this=<unavailable>, (null)=<unavailable>, fsm=0x00007f9f8cd16f90, (null)=<unavailable>, ts=<unavailable
>)<fair::mq::fsm::STOP_FSM_EVENT, boost::msm::back::state_machine<fair::mq::fsm::Machine_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>, fair::mq::fs
m::RUNNING_FSM_STATE, fair::mq::fsm::READY_FSM_STATE>(fair::mq::fsm::STOP_FSM_EVENT const&, boost::msm::back::state_machine<fair::mq::fsm::Machine_, boost::parameter::void_, boost::parameter::void_, boost
::parameter::void_, boost::parameter::void_>&, fair::mq::fsm::RUNNING_FSM_STATE&, fair::mq::fsm::READY_FSM_STATE&) at FairMQStateMachine.cxx:254 [opt]
    frame #4: 0x0000000109f1b63d libFairMQ.1.3.dylib`boost::msm::back::state_machine<fair::mq::fsm::Machine_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::v
oid_>::a_row_<boost::msm::front::Row<fair::mq::fsm::RUNNING_FSM_STATE, fair::mq::fsm::STOP_FSM_EVENT, fair::mq::fsm::READY_FSM_STATE, fair::mq::fsm::Machine_::StopFct, boost::msm::front::none> >::execute(
boost::msm::back::state_machine<fair::mq::fsm::Machine_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>&, int, int, fair::mq::fsm::STOP_FSM_EVENT const
&) [inlined] boost::msm::back::HandledEnum boost::msm::front::Row<fair::mq::fsm::RUNNING_FSM_STATE, fair::mq::fsm::STOP_FSM_EVENT, fair::mq::fsm::READY_FSM_STATE, fair::mq::fsm::Machine_::StopFct, boost::
msm::front::none>::action_call<fair::mq::fsm::STOP_FSM_EVENT, boost::msm::back::state_machine<fair::mq::fsm::Machine_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::par
ameter::void_>, fair::mq::fsm::RUNNING_FSM_STATE, fair::mq::fsm::READY_FSM_STATE, boost::fusion::set<fair::mq::fsm::ERROR_FSM_STATE, fair::mq::fsm::EXITING_FSM_STATE, fair::mq::fsm::OK_FSM_STATE, fair::mq
::fsm::RESETTING_DEVICE_FSM_STATE, fair::mq::fsm::RESETTING_TASK_FSM_STATE, fair::mq::fsm::PAUSED_FSM_STATE, fair::mq::fsm::RUNNING_FSM_STATE, fair::mq::fsm::READY_FSM_STATE, fair::mq::fsm::INITIALIZING_T
ASK_FSM_STATE, fair::mq::fsm::DEVICE_READY_FSM_STATE, fair::mq::fsm::INITIALIZING_DEVICE_FSM_STATE, fair::mq::fsm::IDLE_FSM_STATE> >(fsm=0x00007f9f8cd16f90, evt=<unavailable>, src=<unavailable>, tgt=<unav
ailable>, (null)=0x00007f9f8cd17167) at functor_row.hpp:108 [opt]

This is the reason why some tests randomly timeout in O2. I think this is a regression that appeared when we moved to 1.3.7.

Binding doesn't work when using 'localhost' instead of 127.0.0.1

From FairRoot created by knopers8 : FairRootGroup/FairRoot#711

When trying to open a FairMQ channel with following configuration:

{
  "fairMQOptions": {
    "devices": [
      {
        "id": "sink1",
        "channels": [
          {
            "name": "dpl-out",
            "sockets": [
              {
                "type": "sub",
                "method": "bind",
                "address": "tcp://localhost:26525",
                "sndBufSize": 10,
                "rcvBufSize": 10,
                "rateLogging": 1
              }
            ]
          }
        ]
      }
    ]
  }
}

I get plenty of:
Failed binding socket d31e96a5-61da-444a-a07a-644aeb28ca46.dpl-out[0].sub, reason: No such device
It works when using 127.0.0.1 instead of localhost. Also, it happens only for binding, connecting works nicely.

Unit test Poller.ZeroMQ_subchannel times out on MacOS

Describe the bug
The Poller.ZeroMQ_subchannel unit test times out.

To Reproduce
Run AliceO2 CI check/o2/macos

Expected behavior
The unit test should succeed

Logs / Screenshots
log

System information (please complete the following information):

  • OS: MacOS
  • Compiler: ?
  • Environment: alidist ?

Reporter: @matthiasrichter

Bad configuration transitions to RUNNING before jumping back to READY

Describe the bug
When trying to transition from READY to RUNNING with a control plugin and a bad channel configuration, the device reports successfully entering RUNNING and then jumps back to READY.
The bad channel configuration to reproduce this issue is no config file, no command line parameters, but chan.foo.bar properties pushed to configuration from the plugin.

To Reproduce
FairMQ 1.2.7, 1-n-1 example, ALICE O² Control plugin

Expected behavior
Expected behavior would be staying in READY, or transitioning to ERROR, and in any case not declaring having entered RUNNING if the configuration is bad.

Logs / Screenshots

time="2018-10-29T15:52:21Z" level=info msg="[15:52:21][STATE] Entering RUNNING state" prefix=task-stdout task="fairmq-ex-1-n-1-processor#134ae150-db8c-11e8-865a-a08cfdc880fc"
time="2018-10-29T15:52:21Z" level=info msg="[15:52:21][INFO] DEVICE: Running..." prefix=task-stdout task="fairmq-ex-1-n-1-processor#134ae150-db8c-11e8-865a-a08cfdc880fc"
time="2018-10-29T15:52:21Z" level=info msg="[15:52:21][ERROR] out of range: _Map_base::at" prefix=task-stdout task="fairmq-ex-1-n-1-processor#134ae150-db8c-11e8-865a-a08cfdc880fc"
time="2018-10-29T15:52:21Z" level=info msg="[15:52:21][ERROR] incorrect/incomplete channel configuration?" prefix=task-stdout task="fairmq-ex-1-n-1-processor#134ae150-db8c-11e8-865a-a08cfdc880fc"
time="2018-10-29T15:52:21Z" level=info msg="[15:52:21][STATE] RUNNING state finished without an external event, entering READY state" prefix=task-stdout task="fairmq-ex-1-n-1-processor#134ae150-db8c-11e8-865a-a08cfdc880fc"

System information (please complete the following information):

  • OS: CC7
  • Compiler: whatever aliBuild uses, doesn't seem to matter

Write a 1-n-1 (MapReduce) example by implementing the ROOT::TExecutor interface

Is your feature request related to a problem? Please describe.
A popular application of FairMQ is the 1-n-1 topology (or MapReduce) for simulation or analysis. We get many questions on how to write the user-facing frontend.

Describe the solution you'd like
Implement the ROOT::TExecutor interface, so one can execute a MapReduce workload on a 1-n-1 FairMQ topology deployed by DDS.

Example code written in e.g. a ROOT macro:

ROOT::TExecutor<fair::mq::RootDDSExecutor> pool;
auto result = pool.MapReduce([]() { return 1; }, 10,
  [](std::vector<int> v) {
    return std::accumulate(v.begin(), v.end(), 0);
  });

Describe alternatives you've considered
We already provide lower level examples (examples/1-n-1, examples/dds) and plan to improve on that level #78. This would complement the set of examples.

Shmem permission denied

Describe the bug
@Barthelemy reported to me, he sees permission denied, when running our shm examples. It is not yet understood, if it is his environment or something we can handle on FairMQ side.

To Reproduce
In build directory, run

  • ./fairmq/fairmq-shmmonitor -c and
  • ctest -V -R 'Example-1-1-shmem'.

Expected behavior
Examples should execute successfully.

Logs / Screenshots
log.txt

System information (please complete the following information):

  • OS: MacOS
  • Compiler: Apple Clang
  • Environment: alidist

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.