Jump to content
OpenSplice DDS Forum

Search the Community

Showing results for tags 'memory leak'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • About OpenSplice DDS
    • News and Events
    • Site Feedback
  • Using OpenSplice DDS
    • General
    • Troubleshooting
  • Understanding OpenSplice DDS
    • OpenSplice DDS Slideshows
    • OpenSplice DDS Movies
  • Community
    • Project: SIMD
    • Project: CamelOS
    • Project: DDS Touchstone
    • Project: RESTful DDS
    • Mac OS X

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests


Company

Found 3 results

  1. Hi all, I am using 6.7.1 community version to do some tests, I modified the helloworld standalone example under "\examples\dcps\helloworld\cpp", the program will send 300 samples(or called message?) of 300 topics in a second, and each sample(or called message?) is about 1k byte. After running about 1 hour, the memory usage of the applications(both of sacpp_helloworld_pub.exe and sacpp_helloworld_sub.exe) are more than 1GB, while at the beginning, they were about 6MB. Does anyone know what's the problem? Do I need to do some configurations to avoid the memory leakļ¼Ÿ I just use the default ospl.xml as the OSPL_URI value, the content as show below: <OpenSplice> <Domain> <Name>ospl_sp_ddsi</Name> <Id>0</Id> <SingleProcess>true</SingleProcess> <Description>Stand-alone 'single-process' deployment and standard DDSI networking.</Description> <Service name="ddsi2"> <Command>ddsi2</Command> </Service> <Service name="cmsoap"> <Command>cmsoap</Command> </Service> <DurablePolicies> <Policy obtain="*.*"/> </DurablePolicies> </Domain> <DDSI2Service name="ddsi2"> <General> <NetworkInterfaceAddress>AUTO</NetworkInterfaceAddress> <AllowMulticast>true</AllowMulticast> <EnableMulticastLoopback>true</EnableMulticastLoopback> <CoexistWithNativeNetworking>false</CoexistWithNativeNetworking> </General> <Compatibility> <!-- see the release notes and/or the OpenSplice configurator on DDSI interoperability --> <StandardsConformance>lax</StandardsConformance> <!-- the following one is necessary only for TwinOaks CoreDX DDS compatibility --> <!-- <ExplicitlyPublishQosSetToDefault>true</ExplicitlyPublishQosSetToDefault> --> </Compatibility> </DDSI2Service> <TunerService name="cmsoap"> <Server> <PortNr>Auto</PortNr> </Server> </TunerService> </OpenSplice> Sorry for my poor English, and thank you for your great help.
  2. Hi I have an application that writes a topic at each second. In an overnight test I saved memory usage and I got an evident memory leak as result. Memory footprint grows 8MB/hour. What I see from massif tool it is that there are multiple calls to some allocation functions inside dds in the recv_thread. However, my application does not have any reader only a writer. How is that possible? Please take a look to this functions calls that represent the memory peak: 4088 n3: 2641465 0x128CC751: c_newBaseArrayObject (in /opt/ltv/cots/OpenSplice/lib/libddskernel.so) 4089 n2: 1793387 0x1291708E: c_arrayNew (in /opt/ltv/cots/OpenSplice/lib/libddskernel.so) 4090 n1: 1607949 0x14121D2F: desercollG.9170.2590 (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4091 n1: 1607949 0x14122259: deserialize1.9178 (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4092 n1: 1607949 0x14122259: deserialize1.9178 (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4093 n2: 1607949 0x14141EBA: deserialize (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4094 n1: 1607949 0x14153E3F: deliver_user_data.isra.9.38876.2938 (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4095 n2: 1607949 0x1411E8EB: deliver_user_data_synchronously.isra.10.38880 (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4096 n1: 1583534 0x1411E78E: handle_regular.38914 (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4097 n1: 1583534 0x1411B2AD: handle_submsg_sequence.38938 (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4098 n1: 1583534 0x14155960: recv_thread (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4099 n1: 1583534 0x1414010A: create_thread_wrapper.8361 (in /opt/ltv/cots/OpenSplice/lib/libddsi2.so) 4100 n1: 1583534 0x128FB624: os_startRoutineWrapper.2592 (in /opt/ltv/cots/OpenSplice/lib/libddskernel.so) 4101 n1: 1583534 0x7AD5DC3: start_thread (in /usr/lib64/libpthread-2.17.so) 4102 n0: 1583534 0x780328B: clone (in /usr/lib64/libc-2.17.so) Can I disable this thread or is there some configuration to avoid this thread to be started? If not, where should I look for functions to release this resources? Maybe I should include something to clean memory explicitly. Thank you. EDIT. I believe my problem is related to a known issue https://github.com/PrismTech/opensplice/issues/27
  3. Hi I've written a very simple program in QT that only defines one domain. I found that my program has memory leak (around 100 KB per 5 min). I don't know what's going on and where it is from. Please look at my program below: #ifndef PUBLISHER_H #define PUBLISHER_H #include <dds/dds.hpp> #include "../IDL/myIDL/myIDL_DCPS.hpp" class Publisher { public: Publisher(); }; #endif // PUBLISHER_H #include "publisher.h" Publisher::Publisher() { dds::domain::DomainParticipant dp(org::opensplice::domain::default_id()); } #include <QCoreApplication> #include "publisher.h" #include <QThread> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Publisher publisher; while(true) { QThread::usleep(100); } return 0; } I have also add the following lines to my project file (.pro): #--------------- OpenSplice Libraries & other headers ------------------------- unix:LIBS += -L$$(OSPL_HOME)/lib/ -lddskernel -ldcpsisocpp INCLUDEPATH += $$(OSPL_HOME)/include/dcps/C++/SACPP INCLUDEPATH += $$(OSPL_HOME)/include/dcps/C++/isocpp #------------------------------------------------------------------------------ Also "ospl.xml" is like below: <OpenSplice> <Domain> <Name>ospl_sp_ddsi</Name> <Id>0</Id> <SingleProcess>true</SingleProcess> <Service enabled="true" name="ddsi2"> <Command>ddsi2</Command> <FailureAction>restart</FailureAction> </Service> <Service enabled="true" name="durability"> <Command>durability</Command> <FailureAction>restart</FailureAction> </Service> <Service name="cmsoap"> <Command>cmsoap</Command> </Service> </Domain> <DDSI2Service name="ddsi2"> <General> <NetworkInterfaceAddress>auto</NetworkInterfaceAddress> <AllowMulticast>true</AllowMulticast> <EnableMulticastLoopback>true</EnableMulticastLoopback> <CoexistWithNativeNetworking>false</CoexistWithNativeNetworking> </General> <Compatibility> <!-- see the release notes and/or the OpenSplice configurator on DDSI interoperability --> <StandardsConformance>lax</StandardsConformance> <!-- the following one is necessary only for TwinOaks CoreDX DDS compatibility --> <!-- <ExplicitlyPublishQosSetToDefault>true</ExplicitlyPublishQosSetToDefault> --> </Compatibility> <Internal> <WriterLingerDuration>1 s</WriterLingerDuration> </Internal> </DDSI2Service> <DurabilityService name="durability"> <Network> <Alignment> <TimeAlignment>false</TimeAlignment> <RequestCombinePeriod> <Initial>2.5</Initial> <Operational>0.1</Operational> </RequestCombinePeriod> </Alignment> <WaitForAttachment maxWaitCount="10"> <ServiceName>ddsi2</ServiceName> </WaitForAttachment> </Network> <NameSpaces> <NameSpace name="defaultNamespace"> <Partition>*</Partition> </NameSpace> <Policy alignee="Initial" aligner="true" durability="Durable" nameSpace="defaultNamespace"/> </NameSpaces> </DurabilityService> <TunerService name="cmsoap"> <Server> <PortNr>Auto</PortNr> </Server> </TunerService> </OpenSplice> I also used "valgrind memory analyzer" and found some possible and definite lost in libddskernel.so and libddsi2.so. I'm using "OpenSplice HDE Release V6.4.140407OSS For x86_64.linux" (latest version of DDS community) and my OS is linux mint 17.1 (also latest version). Please help me to solve this problem. It's very important for me. Thanks in advance for your helps. Bonjefir
×