Comment 13 for bug 1580623

Revision history for this message
Heinz Junkes (junkes) wrote :

Running caget with valgrind again the other interface is advertised too:

epics@kannsein:~/EPICS/base-3.15.4-pre1$ valgrind bin/linux-x86_64/caget test
==95974== Memcheck, a memory error detector
==95974== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==95974== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==95974== Command: bin/linux-x86_64/caget test
==95974==
CA.Client.Exception...............................................
    Warning: "Identical process variable names on multiple servers"
    Context: "Channel: "test", Connecting to: 127.0.0.1:51041, Ignored: kannsein.rz-berlin.mpg.de:51041"
    Source File: ../cac.cpp line 1306
    Current Time: Thu May 19 2016 17:27:25.270869640
..................................................................
"
    Source File: ../cac.cpp line 1306
    Current Time: Thu May 19 2016 17:27:25.038468686
..................................................................
CA.Client.Exception...............................................
    Warning: "Identical process variable names on multiple servers"
    Context: "Channel: "test", Connecting to: 127.0.0.1:51041, Ignored: 10.20.30.1:51041test 74
==95974==
==95974== HEAP SUMMARY:
...

Without valgrind:

epics@kannsein:~/EPICS/base-3.15.4-pre1$ bin/linux-x86_64/caget test
CA.Client.Exception...............................................
    Warning: "Identical process variable names on multiple servers"
    Context: "Channel: "test", Connecting to: localhost:51041, Ignored: kannsein.rz-berlin.mpg.de:51041"
    Source File: ../cac.cpp line 1306
    Current Time: Thu May 19 2016 17:28:34.051648189
..................................................................
test 143

There are none reported leaks for msgForMultiplyDefinedPV:

epics@kannsein:~/EPICS/base-3.15.4-pre1$ valgrind --leak-check=full bin/linux-x86_64/caget test
==96056== Memcheck, a memory error detector
==96056== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==96056== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==96056== Command: bin/linux-x86_64/caget test
==96056==
"
    Source File: ../cac.cpp line 1306
    Current Time: Thu May 19 2016 17:32:22.206396366
..................................................................
CA.Client.Exception...............................................
    Warning: "Identical process variable names on multiple servers"
    Context: "Channel: "test", Connecting to: 127.0.0.1:51041, Ignored: kannsein.rz-berlin.mpg.de:51041"
    Source File: ../cac.cpp line 1306
    Current Time: Thu May 19 2016 17:32:22.097905618
..................................................................
CA.Client.Exception...............................................
    Warning: "Identical process variable names on multiple servers"
    Context: "Channel: "test", Connecting to: 127.0.0.1:51041, Ignored: 10.20.30.1:51041test 371
==96056==
==96056== HEAP SUMMARY:
==96056== in use at exit: 25,410 bytes in 264 blocks
==96056== total heap usage: 473 allocs, 209 frees, 1,062,862 bytes allocated
==96056==
==96056== 5 bytes in 1 blocks are definitely lost in loss record 4 of 103
==96056== at 0x4C2B800: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==96056== by 0x4E74A6E: nciu::nciu(cac&, netiiu&, cacChannelNotify&, char const*, unsigned int) (nciu.cpp:67)
==96056== by 0x4E61C3D: cac::createChannel(epicsGuard<epicsMutex>&, char const*, cacChannelNotify&, unsigned int) (cac.cpp:520)
==96056== by 0x4E838FB: oldChannelNotify::oldChannelNotify(epicsGuard<epicsMutex>&, ca_client_context&, char const*, void (*)(connection_handler_args), void*, unsigned int) (oldChannelNotify.cpp:51)
==96056== by 0x4E652E1: ca_create_channel (access.cpp:333)
==96056== by 0x40484E: create_pvs (tool_lib.c:587)
==96056== by 0x40484E: connect_pvs (tool_lib.c:623)
==96056== by 0x401E01: main (caget.c:544)
==96056==
==96056== 112 (88 direct, 24 indirect) bytes in 1 blocks are definitely lost in loss record 94 of 103
==96056== at 0x4C2CC70: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==96056== by 0x401DB5: main (caget.c:533)
==96056==
==96056== 288 bytes in 1 blocks are possibly lost in loss record 97 of 103
==96056== at 0x4C2CC70: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==96056== by 0x4012E54: allocate_dtv (dl-tls.c:296)
==96056== by 0x4012E54: _dl_allocate_tls (dl-tls.c:460)
==96056== by 0x56E2DA0: allocate_stack (allocatestack.c:589)
==96056== by 0x56E2DA0: pthread_create@@GLIBC_2.2.5 (pthread_create.c:500)
==96056== by 0x50E4D2B: epicsThreadCreate (osdThread.c:516)
==96056== by 0x50DE8CC: epicsThread::epicsThread(epicsThreadRunable&, char const*, unsigned int, unsigned int) (epicsThread.cpp:186)
==96056== by 0x50DD7A6: ipAddrToAsciiEnginePrivate::ipAddrToAsciiEnginePrivate() (ipAddrToAsciiAsynchronous.cpp:140)
==96056== by 0x50DD848: ipAddrToAsciiEngineGlobalMutexConstruct (ipAddrToAsciiAsynchronous.cpp:115)
==96056== by 0x50E5FA0: epicsThreadOnce (osdThread.c:477)
==96056== by 0x50DD65A: ipAddrToAsciiEngine::allocate() (ipAddrToAsciiAsynchronous.cpp:129)
==96056== by 0x4E60863: cac::cac(epicsMutex&, epicsMutex&, cacContextNotify&) (cac.cpp:136)
==96056== by 0x4E828CD: ca_client_context::ca_client_context(bool) (ca_client_context.cpp:92)
==96056== by 0x4E650B5: ca_context_create (access.cpp:206)
==96056==
==96056== 288 bytes in 1 blocks are possibly lost in loss record 98 of 103
==96056== at 0x4C2CC70: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==96056== by 0x4012E54: allocate_dtv (dl-tls.c:296)
==96056== by 0x4012E54: _dl_allocate_tls (dl-tls.c:460)
==96056== by 0x56E2DA0: allocate_stack (allocatestack.c:589)
==96056== by 0x56E2DA0: pthread_create@@GLIBC_2.2.5 (pthread_create.c:500)
==96056== by 0x50E4D2B: epicsThreadCreate (osdThread.c:516)
==96056== by 0x50CF28B: errlogInitPvt (errlog.c:500)
==96056== by 0x50E5FA0: epicsThreadOnce (osdThread.c:477)
==96056== by 0x50CF6A5: errlogInit2 (errlog.c:525)
==96056== by 0x50CF969: errlogVprintf (errlog.c:159)
==96056== by 0x4E80D36: ca_client_context::printFormated(char const*, ...) const (ca_client_context.cpp:272)
==96056== by 0x4E80D82: ca_client_context::vSignal(int, char const*, int, char const*, __va_list_tag*) (ca_client_context.cpp:383)
==96056== by 0x4E80F07: ca_client_context::signal(int, char const*, int, char const*, ...) (ca_client_context.cpp:363)
==96056== by 0x4E81005: ca_client_context::exception(epicsGuard<epicsMutex>&, int, char const*, char const*, unsigned int) (ca_client_context.cpp:319)
==96056==
==96056== LEAK SUMMARY:
==96056== definitely lost: 93 bytes in 2 blocks
==96056== indirectly lost: 24 bytes in 1 blocks
==96056== possibly lost: 576 bytes in 2 blocks
==96056== still reachable: 24,717 bytes in 259 blocks
==96056== suppressed: 0 bytes in 0 blocks
==96056== Reachable blocks (those to which a pointer was found) are not shown.
==96056== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==96056==
==96056== For counts of detected and suppressed errors, rerun with: -v
==96056== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)