<div dir="ltr"><pre style="color:rgb(0,0,0);white-space:pre-wrap">Hello All,</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">I have encountered an issue with upgrading from ACE 5.5.4 (TAO 1.5.4) to ACE 6.5.7 (TAO 2.5.7).</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">    ACE VERSION: 6.5.7

    HOST MACHINE and OPERATING SYSTEM: Red Hat 7

    TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
    COMPILER NAME AND VERSION (AND PATCHLEVEL): Red Hat 7

    THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
    specific file, simply state which one]:</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">#define TAO_HAS_INTERCEPTORS 0<br>#include "ace/config-linux.h"<br>#if defined (ACE_USES_OLD_IOSTREAMS)<br># undef (ACE_USES_OLD_IOSTREAMS)<br>#endif<br>#define ACE_LACKS_STROPTS_H 1<br>#define ACE_LACKS_STRRECVFD 1<br>#undef ACE_HAS_STRBUF_T<br>#undef ACE_HAS_SCANDIR<br>

    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
    use a link to a platform-specific file, simply state which one
    (unless this isn't used in this case, e.g., with Microsoft Visual
    C++)]:</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">include $(ACE_ROOT)/include/makeinclude/platform_linux_icc.GNU<br>cidl=1<br>qt4=1<br>qtver=4<br>qt=1<br>interceptors=0<br>ace_qt4reactor=1<br>debug=1<br>
    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
    (used by MPC when you generate your own makefiles):
</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">cidl=1<br>qt4=1<br>qt=1<br>interceptors=0<br>ace_qt4reactor=1
</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">    AREA/CLASS/EXAMPLE AFFECTED:
ACE & TAO build fine.

    DOES THE PROBLEM AFFECT:
        COMPILATION?
        LINKING?
            On Unix systems, did you run make realclean first?
        EXECUTION?
        OTHER (please specify)?
My Application is affected on execution, setting up the server. Started from a clean build.

    SYNOPSIS:
Upon binding CosNaming::Name I get a SIGABRT from libc, originating from the _this () method generated by TAO_IDL.

    DESCRIPTION:
>From GDB I get this stacktrace:</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">*** Error in `<APPLICATION>.exe': free(): invalid next size (fast): 0x000000000aa12810 ***<br>======= Backtrace: =========<br>/lib64/libc.so.6(+0x7c619)[0x2aaac9f4f619]<br><APPLICATION>.exe(_ZN5CORBA6Object14_decr_refcountEv+0x2b)[0x879dab]<br><APPLICATION>.exe(_ZN5CORBA7releaseIPNS_6ObjectEEEvT_+0x21)[0x87c27d]<br><APPLICATION>.exe(_ZN16TAO_Pseudo_Var_TIN5CORBA6ObjectEED1Ev+0x1b)[0x878c97]<br><APPLICATION_MODULE>.so(_ZN15<POA_GENERATED_NAMESPACE>9<GENERATEDCLASS>5_thisEv+0x2da)[0x2aaab52c8fa4]<br><APPLICATION_MODULE>.so(+0x2fd932)[0x2aaab5312932]<br><APPLICATION_MODULE>.so(_Z16CorbaStartServerPKc+0x4a5)[0x2aaab5313355]<br><APPLICATION_MODULE>.so(_ZN14DistHFPTModule10initialiseERiPPc+0x5b)[0x2aaab535331b]<br><APPLICATION>.exe[0x566ebd]<br><APPLICATION>.exe[0x565db5]<br><APPLICATION>.exe(main+0x20)[0x5664bc]<br>/lib64/libc.so.6(__libc_start_main+0xf5)[0x2aaac9ef4c05]<br><APPLICATION>.exe[0x5655a9]<br>======= Memory map: ========<br>00400000-01f37000 r-xp 00000000 fd:00 11405299                           <APPLICATION>.exe<br>02136000-0214a000 r--p 01b36000 fd:00 11405299                           <APPLICATION>.exe<br>0214a000-02336000 rw-p 01b4a000 fd:00 11405299                           <APPLICATION>.exe<br>02336000-0aa75000 rw-p 00000000 00:00 0                                  [heap]<br>2aaaaaaab000-2aaaaaacc000 r-xp 00000000 fd:00 25952882                   /usr/lib64/<a href="http://ld-2.17.so">ld-2.17.so</a><br>2aaaaaacc000-2aaaaaace000 r-xp 00000000 00:00 0                          [vdso]<br>2aaaaaace000-2aaaaaacf000 rw-p 00000000 00:00 0 <br>2aaaaaacf000-2aaaaaad6000 r--s 00000000 fd:00 26217138                   /usr/lib64/gconv/gconv-modules.cache<br>2aaaaaad6000-2aaaaaada000 r--s 00000000 fd:00 20054063                   /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-le64.cache-4<br>2aaaaaada000-2aaaaaadb000 r--s 00000000 fd:00 20054511                   /var/cache/fontconfig/d04038e664b0033ae700a78c51f179d3-le64.cache-4<br>2aaaaaadb000-2aaaaaadd000 r--s 00000000 fd:00 20054031                   /var/cache/fontconfig/3640555adad8a8f6978400293cfce7ab-le64.cache-4<br>2aaaaaadd000-2aaaaaae5000 r--s 00000000 fd:00 20054540                   /var/cache/fontconfig/928306c3ad40271d946e41014a49fc28-le64.cache-4<br>2aaaaaae5000-2aaaaaae7000 r--s 00000000 fd:00 20054543                   /var/cache/fontconfig/f9d379b867d7c69c85310a4f24e5228f-le64.cache-4<br>2aaaaaae7000-2aaaaaae9000 r--s 00000000 fd:00 20054549                   /var/cache/fontconfig/99a1ce9f8b6a0434aadb01d3779b0780-le64.cache-4<br>2aaaaaae9000-2aaaaaaea000 r--s 00000000 fd:00 20054552                   /var/cache/fontconfig/b4d0b56f766d89640448751fcd18ec1e-le64.cache-4<br>2aaaaaaea000-2aaaaaaec000 r--s 00000000 fd:00 20054523                   /var/cache/fontconfig/d3379abda271c4acd2ad0c01f565d0b0-le64.cache-4<br>2aaaaaaec000-2aaaaaaed000 r--s 00000000 fd:00 20054532                   /var/cache/fontconfig/e61abf8156cc476151baa07d67337cae-le64.cache-4<br>2aaaaaaed000-2aaaaab2c000 rw-p 00000000 00:00 0 <br>2aaaaab2c000-2aaaaab3e000 r--s 00000000 fd:00 20054148                   /var/cache/fontconfig/33315028185e8b9ecf55d3c7f93d9205-le64.cache-4<br>2aaaaab3e000-2aaaaab49000 r--s 00000000 fd:00 20054146                   /var/cache/fontconfig/12b26b760a24f8b4feb03ad48a333a72-le64.cache-4<br>2aaaaab49000-2aaaaab5c000 r--s 00000000 fd:00 20054533                   /var/cache/fontconfig/614d1caaa4d7914789410f6367de37ca-le64.cache-4<br>2aaaaab5c000-2aaaaab61000 r--s 00000000 fd:00 20054145                   /var/cache/fontconfig/b67b32625a2bb51b023d3814a918f351-le64.cache-4<br>2aaaaab61000-2aaaaab62000 r--s 00000000 fd:00 20054531                   /var/cache/fontconfig/3c3fb04d32a5211b073874b125d29701-le64.cache-4<br>2aaaaab62000-2aaaaab63000 r--s 00000000 fd:00 20054522                   /var/cache/fontconfig/2881ed3fd21ca306ddad6f9b0dd3189f-le64.cache-4<br>2aaaaab63000-2aaaaab64000 r--s 00000000 fd:00 20054524                   /var/cache/fontconfig/47f48679023f44a4d1e44699a69464f6-le64.cache-4<br>2aaaaab64000-2aaaaab65000 r--s 00000000 fd:00 20054520                   /var/cache/fontconfig/900402270e15d763a6e008bb2d4c7686-le64.cache-4<br>2aaaaab65000-2aaaaab66000 r--s 00000000 fd:00 20054536                   /var/cache/fontconfig/df893b4576ad6107f9397134092c4059-le64.cache-4<br>2aaaaab66000-2aaaaab67000 r--s 00000000 fd:00 20054550                   /var/cache/fontconfig/fa2b533b7056bdadb961f088bc0a978b-le64.cache-4<br>2aaaaab67000-2aaaaab68000 r--s 00000000 fd:00 20054546                   /var/cache/fontconfig/d290456e58f67f52b0f8f224126f9ea8-le64.cache-4<br>Program received signal SIGABRT, Aborted.<br>0x00002aaac9f081f7 in raise () from /lib64/libc.so.6<br>Missing separate debuginfos, use: debuginfo-install fontconfig-2.10.95-11.el7.x86_64 freetype-2.4.11-15.el7.x86_64 glibc-2.17-196.el7_4.2.x86_64 libICE-1.0.9-9.el7.x86_64 libSM-1.2.2-2.el7.x86_64 libX11-1.6.5-1.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXcursor-1.1.14-8.el7.x86_64 libXext-1.3.3-3.el7.x86_64 libXfixes-devel-5.0.3-1.el7.x86_64 libXi-1.7.9-1.el7.x86_64 libXmu-1.1.2-2.el7.x86_64 libXrandr-1.5.1-2.el7.x86_64 libXrender-0.9.10-1.el7.x86_64 libXt-1.1.5-3.el7.x86_64 libjpeg-turbo-1.2.90-5.el7.x86_64 libuuid-2.23.2-43.el7_4.2.x86_64 libxcb-1.12-1.el7.x86_64<br>(gdb) bt<br>#0  0x00002aaac9f081f7 in raise () from /lib64/libc.so.6<br>#1  0x00002aaac9f098e8 in abort () from /lib64/libc.so.6<br>#2  0x00002aaac9f47f47 in __libc_message () from /lib64/libc.so.6<br>#3  0x00002aaac9f4f619 in _int_free () from /lib64/libc.so.6<br>#4  0x0000000000879dab in CORBA::Object::_decr_refcount (this=0xaa12810) at <thirdparty_libs>/ace_tao/include/tao/Object.inl:86<br>#5  0x000000000087c27d in CORBA::release<CORBA::Object*> (x=0xaa12810) at <thirdparty_libs>/ace_tao/include/tao/CORBA_methods.h:58<br>#6  0x0000000000878c97 in TAO_Pseudo_Var_T<CORBA::Object>::~TAO_Pseudo_Var_T (this=0x7fffffff80f8)<br>    at <thirdparty_libs>/ace_tao/include/tao/Pseudo_VarOut_T.inl:29<br>#7  0x00002aaab52c8fa4 in <POA_GENERATED_NAMESPACE>::<GENERATEDCLASS>::_this (this=0xa805180) at <GENERATED_FROM_IDL_FILE>.cpp:871<br>#8  0x00002aaab5312932 in _INTERNAL56c1011e::RegisterName (impl=0xa805180, context=0x2aaab544fadc "<CONTEXT>", name=0x7fffffffb0f4 "<SERVERNAME>", type=0x2aaab544faf0 "<TYPE/KIND>")<br>    at CorbaInit.cpp:116<br>#9  0x00002aaab5313355 in CorbaStartServer (serverName=0x7fffffffb0f4 "<SERVERNAME>") at CorbaInit.cpp:263<br>#10 0x00002aaab535331b in <APPLICATION_MODULE>::initialise (this=0xa76be20, argc=@0x7fffffffa588: 1, argv=0x7fffffffa798) at <APPLICATION_MODULE>.cpp:45<br>#11 0x0000000000566ebd in _INTERNAL7e6e1e8c::StartModules (modules=..., argc=@0x7fffffffa588: 1, argv=0x7fffffffa798) at ../Main.cpp:1033<br>#12 0x0000000000565db5 in DYNAMO_MAIN (argc=1, argv=0x7fffffffa798) at ../FeMain.cpp:420<br>#13 0x00000000005664bc in main (argc=15, argv=0x7fffffffa798) at ../FeMain.cpp:592<br><br></pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">I had to replace some of the functions/file names...</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">The generated _this method looks now (6.5.7) like:</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap"><NAMESPACE>::<CLASS> *<br>POA_<NAMESPACE>::<CLASS>::_this (void)<br>{<br>  TAO_Stub *stub = this->_create_stub ();<br><br>  TAO_Stub_Auto_Ptr safe_stub (stub);<br>  ::CORBA::Object_ptr tmp = CORBA::Object_ptr ();<br><br>  ::CORBA::Boolean const _tao_opt_colloc =<br>    stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ();<br>  <br>  ACE_NEW_RETURN (<br>      tmp,<br>      ::CORBA::Object (stub, _tao_opt_colloc, this),<br>      0);<br>  <br>  ::CORBA::Object_var obj = tmp;<br>  (void) safe_stub.release ();<br><br>  typedef ::<NAMESPACE>::<CLASS> STUB_SCOPED_NAME;<br>  return<br>    TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (<br>        <a href="http://obj.in">obj.in</a> ());<br>}<br></pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">Before (5.5.4) it looked like:</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap"><NAMESPACE>::<CLASS> *<br>POA_<NAMESPACE>::<CLASS>::_this (ACE_ENV_SINGLE_ARG_DECL)<br>{<br>  TAO_Stub *stub = this->_create_stub (ACE_ENV_SINGLE_ARG_PARAMETER);<br>  ACE_CHECK_RETURN (0);<br>  <br>  TAO_Stub_Auto_Ptr safe_stub (stub);<br>  ::CORBA::Object_ptr tmp = CORBA::Object::_nil ();<br>  <br>  ::CORBA::Boolean const _tao_opt_colloc =<br>    stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ();<br>  <br>  ACE_NEW_RETURN (<br>      tmp,<br>      ::CORBA::Object (stub, _tao_opt_colloc, this),<br>      0<br>    );<br>  <br>  ::CORBA::Object_var obj = tmp;<br>  (void) safe_stub.release ();<br>  <br>  typedef ::<NAMESPACE>::<CLASS> STUB_SCOPED_NAME;<br>  return<br>    TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (<br>        <a href="http://obj.in">obj.in</a> (),<br>        <NAMESPACE>__TAO_<CLASS>_Proxy_Broker_Factory_function_pointer<br>      );<br>}<br></pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">And crashes on the return of the new one.</pre><pre style="white-space:pre-wrap"><font color="#000000">The application I'm trying to upgrade is very old, and I'm not that familiar with ACE/TAO.
I confirmed that the code is following the example described here:
</font><a href="http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/TAO/docs/tutorials/Quoter/Naming_Service/index.html" style="color:rgb(0,0,0)">http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/TAO/docs/tutorials/Quoter/Naming_Service/index.html</a>

</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap"></pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">    REPEAT BY:
I test everything locally, no extra servers, and the old version of ACE TAO works without problems.</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">If anyone can point me in the right direction, that would be very much appreciated!</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">Regards,
Yorick Bosman</pre></div>