Git Product home page Git Product logo

oz's Introduction

Welcome to OZ!

What is OZ?

OZ is a production-quality, high-performance implementation of "message-oriented middleware" that is ready for use by applications in many areas, including but not limited to financial market data applications.

OZ was designed to support many of the most popular features of typical MOM's:

  • publish/subscribe messaging using topic-based addressing, supporting hierarchical topic namespaces and "wildcard" subscriptions;
  • request/reply (inbox) messaging for transactional interactions;
  • dynamic service discovery with minimal configuration;
  • broker-less architecture for reduced latency and optimum throughput;
  • self-describing messages (thanks to OpenMAMA-omnm).

Who uses it?

OZ is the middleware layer that powers the NYFIX Marketplace -- the world's largest FIX network, which processes on the order of 50 million messages per day with unmatched reliability and outstanding performance.

What's so special about OZ?

OZ is the only production-quality, high-performance middleware solution that is also open-source.

While there have been plenty of open-source middleware solutions (like JMS and AMQP), none of them have really been suitable for the demands of real-time, low-latency, high-throughput messaging.

There are a number of high-performance middleware solutions, but they are almost exclusively commercial products.

Why is it called OZ?

OZ brings together two world-class software projects: OpenMAMA and ZeroMQ:

  • OpenMAMA provides a "middleware-agnostic messaging API" that has been used for many years in a number of commercial products and in-house systems. OpenMAMA grew out of the original MAMA implementation by Wombat Financial, and was donated to the Linux Foundation by the New York Stock Exchange. OpenMAMA also provides utility functions including timers, queues, dispatchers, loggers, etc.

    However, the Qpid open-source transport supplied with OpenMAMA has not been a match for the features, reliability or performance of the commercial OpenMAMA transports, and is not typically suitable for production use.

  • ZeroMQ has been quite succesful as a high-performance messaging library, and is included in many Linux distributions (including Debian, Ubuntu, Fedora, CentOS, RHEL, and SUSE). It is also used internally by a number of organizations including AT&T, Cisco, EA, Los Alamos Labs, NASA, Zynga, Spotify, Samsung Electronics, Microsoft, and CERN.

    However, ZeroMQ is essentially a "toolkit" that can be used to build applications, and to some extent that is both a blessing and a curse. A blessing in that ZeroMQ doesn't impose an architecture on the applications you can build with it, but a curse in that this design approach means that there can be a rather steep learning curve, as well as a fair amount of effort, associated with building applications using ZeroMQ.

OZ aims to combine the ease of building applications written to the OpenMAMA API with the commercial-quality performance and robustness of the ZeroMQ messaging library.

What do I need to run it?

Currently, OZ is known to work on Linux (CentOS 7/8, and Ubunutu 20.04), and macOS (Mojave). We hope to provide support for other distributions and other platforms soon.

OZ runs over standard TCP/IP networks.

How do I get started?

The Getting Started document explains how to build OZ, and its dependencies, from source and how to run the OpenMAMA unit tests. Once you've done that, OZ includes example code that you can use to get familiar with OZ.

And/or check out the rest of the docs in the doc directory.

Acknowledgements

OZ is based on work originally done by Frank Quinn, who implemented an earlier version of an OpenMAMA-ZeroMQ bridge, which can be found here.

OZ has benefited greatly from the efforts of the entire ZeroMQ community, and especially Doron Somech, Luca Boccassi and Simon Giesecke.

OZ has benefited greatly from the efforts of the entire OpenMAMA community, and especially Frank Quinn.

oz's People

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oz's Issues

use-after-free at shutdown

ASAN reports a uaf error when running OpenMAMA unit tests.

=================================================================
==107343==ERROR: AddressSanitizer: heap-use-after-free on address 0x6210001f2a60 at pc 0x7fe11613a7db bp 0x7fe11191fde0 sp 0x7fe11191fdd8
READ of size 4 at 0x6210001f2a60 thread T228
    #0 0x7fe11613a7da in wInterlocked_read /home/btorpey/install/OpenMAMA/master/asan/include/wombat/wInterlocked.h:165:17
    #1 0x7fe11613a7da in zmqBridgeMamaTransportImpl_publishEndpoints /home/btorpey/work/OpenMAMA-zmq/master/src/src/transport.c:1531:37
    #2 0x7fe11b2ea608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477:8
    #3 0x7fe11b1e5292 in clone /build/glibc-eX1tMB/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95

0x6210001f2a60 is located 4448 bytes inside of 4656-byte region [0x6210001f1900,0x6210001f2b30)
freed by thread T0 here:
    #0 0x56d74d in free (/home/btorpey/install/OpenMAMA/master/asan/bin/UnitTestMamaC+0x56d74d)
    #1 0x7fe116137af9 in zmqBridgeMamaTransport_destroy /home/btorpey/work/OpenMAMA-zmq/master/src/src/transport.c:271:4
    #2 0x7fe11b80910d in mamaTransport_destroy /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/c/transport.c:1291:9
    #3 0x61514e in MamaPublisherTestC_EventSendWithCallbacksNoCallbacks_Test::TestBody() /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/gunittest/c/publishertest.cpp:546:5
    #4 0x7fbcfc in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2402
    #5 0x7f6571 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2438
    #6 0x7dbc89 in testing::Test::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2475
    #7 0x7dc4f9 in testing::TestInfo::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2656
    #8 0x7dcb33 in testing::TestCase::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2774
    #9 0x7e3656 in testing::internal::UnitTestImpl::RunAllTests() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:4649
    #10 0x7fcb82 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2402
    #11 0x7f728b in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2438
    #12 0x7e235b in testing::UnitTest::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:4257
    #13 0x7d4a0e in RUN_ALL_TESTS() /build/share/googletest/1.8.0-gcc530/include/gtest/gtest.h:2233:46
    #14 0x7d4a0e in main /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/gunittest/c/MainUnitTestC.cpp:181:12
    #15 0x7fe11b0ea0b2 in __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308:16

previously allocated by thread T0 here:
    #0 0x56db42 in calloc (/home/btorpey/install/OpenMAMA/master/asan/bin/UnitTestMamaC+0x56db42)
    #1 0x7fe1161351fe in zmqBridgeMamaTransport_create /home/btorpey/work/OpenMAMA-zmq/master/src/src/transport.c:88:53
    #2 0x7fe11b805984 in mamaTransport_create /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/c/transport.c:890:16
    #3 0x613d63 in MamaPublisherTestC_EventSendWithCallbacksNoCallbacks_Test::TestBody() /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/gunittest/c/publishertest.cpp:528:5
    #4 0x7fbcfc in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2402
    #5 0x7f6571 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2438
    #6 0x7dbc89 in testing::Test::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2475
    #7 0x7dc4f9 in testing::TestInfo::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2656
    #8 0x7dcb33 in testing::TestCase::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2774
    #9 0x7e3656 in testing::internal::UnitTestImpl::RunAllTests() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:4649
    #10 0x7fcb82 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2402
    #11 0x7f728b in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2438
    #12 0x7e235b in testing::UnitTest::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:4257
    #13 0x7d4a0e in RUN_ALL_TESTS() /build/share/googletest/1.8.0-gcc530/include/gtest/gtest.h:2233:46
    #14 0x7d4a0e in main /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/gunittest/c/MainUnitTestC.cpp:181:12
    #15 0x7fe11b0ea0b2 in __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308:16

Thread T228 created by T227 here:
    #0 0x55877a in pthread_create (/home/btorpey/install/OpenMAMA/master/asan/bin/UnitTestMamaC+0x55877a)
    #1 0x7fe116139465 in zmqBridgeMamaTransportImpl_dispatchNamingMsg /home/btorpey/work/OpenMAMA-zmq/master/src/src/transport.c:715:16
    #2 0x7fe116140878 in zmqBridgeMamaTransportImpl_dispatchThread /home/btorpey/work/OpenMAMA-zmq/master/src/src/transport.c:554:13
    #3 0x7fe11b2ea608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477:8

Thread T227 created by T0 here:
    #0 0x55877a in pthread_create (/home/btorpey/install/OpenMAMA/master/asan/bin/UnitTestMamaC+0x55877a)
    #1 0x7fe11613692e in zmqBridgeMamaTransportImpl_start /home/btorpey/work/OpenMAMA-zmq/master/src/src/transport.c:392:13
    #2 0x7fe11613692e in zmqBridgeMamaTransport_create /home/btorpey/work/OpenMAMA-zmq/master/src/src/transport.c:188:4
    #3 0x7fe11b805984 in mamaTransport_create /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/c/transport.c:890:16
    #4 0x613d63 in MamaPublisherTestC_EventSendWithCallbacksNoCallbacks_Test::TestBody() /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/gunittest/c/publishertest.cpp:528:5
    #5 0x7fbcfc in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2402
    #6 0x7f6571 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2438
    #7 0x7dbc89 in testing::Test::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2475
    #8 0x7dc4f9 in testing::TestInfo::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2656
    #9 0x7dcb33 in testing::TestCase::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2774
    #10 0x7e3656 in testing::internal::UnitTestImpl::RunAllTests() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:4649
    #11 0x7fcb82 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2402
    #12 0x7f728b in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2438
    #13 0x7e235b in testing::UnitTest::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:4257
    #14 0x7d4a0e in RUN_ALL_TESTS() /build/share/googletest/1.8.0-gcc530/include/gtest/gtest.h:2233:46
    #15 0x7d4a0e in main /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/gunittest/c/MainUnitTestC.cpp:181:12
    #16 0x7fe11b0ea0b2 in __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308:16

SUMMARY: AddressSanitizer: heap-use-after-free /home/btorpey/install/OpenMAMA/master/asan/include/wombat/wInterlocked.h:165:17 in wInterlocked_read
Shadow bytes around the buggy address:
  0x0c42800364f0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c4280036500: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c4280036510: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c4280036520: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c4280036530: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x0c4280036540: fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd fd
  0x0c4280036550: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c4280036560: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa fa
  0x0c4280036570: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4280036580: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c4280036590: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==107343==ABORTING

This can happen if the transport is destroyed immediately after creation, and while the zmqBridgeMamaTransportImpl_publishEndpoints thread is running.

Since making the MamaIO component optional, this happens in UnitTestMamaC, which terminates immediately after startup.

Build does not seem to work with latest ZeroMQ build

I compiled zeromq-4.3.2 from source (after Ubuntu 20.04's package manager build failed) and it looks like it fails to build:

[  2%] Building C object src/CMakeFiles/mamazmqimpl.dir/transport.c.o
/home/fquinn/SourceExternal/nyfix/OZ/src/transport.c: In function ‘zmqBridgeMamaTransportImpl_stopReconnectOnError’:
/home/fquinn/SourceExternal/nyfix/OZ/src/transport.c:1302:26: error: ‘ZMQ_RECONNECT_STOP_CONN_REFUSED’ undeclared (first use in this function)
 1302 |    int reconnectOption = ZMQ_RECONNECT_STOP_CONN_REFUSED | ZMQ_RECONNECT_STOP_HANDSHAKE_FAILED;
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fquinn/SourceExternal/nyfix/OZ/src/transport.c:1302:26: note: each undeclared identifier is reported only once for each function it appears in
/home/fquinn/SourceExternal/nyfix/OZ/src/transport.c:1302:60: error: ‘ZMQ_RECONNECT_STOP_HANDSHAKE_FAILED’ undeclared (first use in this function)
 1302 |    int reconnectOption = ZMQ_RECONNECT_STOP_CONN_REFUSED | ZMQ_RECONNECT_STOP_HANDSHAKE_FAILED;
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fquinn/SourceExternal/nyfix/OZ/src/transport.c:1303:45: error: ‘ZMQ_RECONNECT_STOP’ undeclared (first use in this function); did you mean ‘ZMQ_RECONNECT_IVL’?
 1303 |    int rc = zmq_setsockopt(socket->mSocket, ZMQ_RECONNECT_STOP, &reconnectOption, sizeof(reconnectOption));
      |                                             ^~~~~~~~~~~~~~~~~~
      |                                             ZMQ_RECONNECT_IVL
make[2]: *** [src/CMakeFiles/mamazmqimpl.dir/build.make:187: src/CMakeFiles/mamazmqimpl.dir/transport.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:155: src/CMakeFiles/mamazmqimpl.dir/all] Error 2
make: *** [Makefile:150: all] Error 2

Are there any plans to support more recent versions or what version should I be trying this with?

SEGV in OpenMAMA unit tests w/base bridge

OpenMAMA: base bridge makes assumptions about transport

The OpenMAMA base bridge implementation of the IO object assumes that the transport defines and allocates a "closure" object that:

  • is returned by the (poorly-named) baseBridgeMamaIoImpl_getQpidBridgeClosure function;
  • includes a pointer to a baseBridgeClosure struct that in turn contains a pointer to a event_base struct which is used by the IO component.

While the official Bridge documentation appears to mandate a "closure" object for any transport, the official Qpid bridge does not allocate one, and neither did OZ. That worked OK for the Qpid bridge, since it does not delegate to the base bridge implementation. (One can argue that the Qpid bridge should have been modified to delegate to the base bridge when the base bridge implementation was created, but that did not happen).

However, since the OZ bridge did delegate to the base bridge implementation, but did not set the bridge closure, the unit tests resulted in the following SEGV:

==1167625==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x7fd2a2cb78f9 bp 0x7ffc7c177300 sp 0x7ffc7c1771e0 T0)
==1167625==The signal is caused by a READ memory access.
==1167625==Hint: address points to the zero page.
    #0 0x7fd2a2cb78f9 in baseBridgeMamaIo_create /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/c/bridge/base/io.c:113:45
    #1 0x7fd2a60d5cd5 in mamaIo_create /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/c/io.c:86:33
    #2 0x5a3483 in MamaIoTestC_CreateDestroy_Test::TestBody() /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/gunittest/c/iotest.cpp:93:26
    #3 0x7fcc2c in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2402
    #4 0x7f74a1 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2438
    #5 0x7dcbb9 in testing::Test::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2475
    #6 0x7dd429 in testing::TestInfo::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2656
    #7 0x7dda63 in testing::TestCase::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2774
    #8 0x7e4586 in testing::internal::UnitTestImpl::RunAllTests() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:4649
    #9 0x7fdab2 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2402
    #10 0x7f81bb in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:2438
    #11 0x7e328b in testing::UnitTest::Run() /shared/buildtest/googletest/1.8.0-gcc530/googletest-release-1.8.0/googletest/src/gtest.cc:4257
    #12 0x7d593e in RUN_ALL_TESTS() /build/share/googletest/1.8.0-gcc530/include/gtest/gtest.h:2233:46
    #13 0x7d593e in main /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/gunittest/c/MainUnitTestC.cpp:181:12
    #14 0x7fd2a5a220b2 in __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308:16
    #15 0x4f528d in _start (/home/btorpey/install/OpenMAMA/master/asan/bin/UnitTestMamaC+0x4f528d)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/btorpey/work/OpenMAMA/master/src/mama/c_cpp/src/c/bridge/base/io.c:113:45 in baseBridgeMamaIo_create
==1167625==ABORTING

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.