[ace-users] ACE TAO: Upgrade from 5.5.4 to 6.5.7

Yorick yorick.bosman at gmail.com
Wed Mar 11 04:58:44 CDT 2020


Hello All,

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).

    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]:

#define TAO_HAS_INTERCEPTORS 0
#include "ace/config-linux.h"
#if defined (ACE_USES_OLD_IOSTREAMS)
# undef (ACE_USES_OLD_IOSTREAMS)
#endif
#define ACE_LACKS_STROPTS_H 1
#define ACE_LACKS_STRRECVFD 1
#undef ACE_HAS_STRBUF_T
#undef ACE_HAS_SCANDIR


    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++)]:

include $(ACE_ROOT)/include/makeinclude/platform_linux_icc.GNU
cidl=1
qt4=1
qtver=4
qt=1
interceptors=0
ace_qt4reactor=1
debug=1

    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
    (used by MPC when you generate your own makefiles):

cidl=1
qt4=1
qt=1
interceptors=0
ace_qt4reactor=1

    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:

*** Error in `<APPLICATION>.exe': free(): invalid next size (fast):
0x000000000aa12810 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7c619)[0x2aaac9f4f619]
<APPLICATION>.exe(_ZN5CORBA6Object14_decr_refcountEv+0x2b)[0x879dab]
<APPLICATION>.exe(_ZN5CORBA7releaseIPNS_6ObjectEEEvT_+0x21)[0x87c27d]
<APPLICATION>.exe(_ZN16TAO_Pseudo_Var_TIN5CORBA6ObjectEED1Ev+0x1b)[0x878c97]
<APPLICATION_MODULE>.so(_ZN15<POA_GENERATED_NAMESPACE>9<GENERATEDCLASS>5_thisEv+0x2da)[0x2aaab52c8fa4]
<APPLICATION_MODULE>.so(+0x2fd932)[0x2aaab5312932]
<APPLICATION_MODULE>.so(_Z16CorbaStartServerPKc+0x4a5)[0x2aaab5313355]
<APPLICATION_MODULE>.so(_ZN14DistHFPTModule10initialiseERiPPc+0x5b)[0x2aaab535331b]
<APPLICATION>.exe[0x566ebd]
<APPLICATION>.exe[0x565db5]
<APPLICATION>.exe(main+0x20)[0x5664bc]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x2aaac9ef4c05]
<APPLICATION>.exe[0x5655a9]
======= Memory map: ========
00400000-01f37000 r-xp 00000000 fd:00 11405299
  <APPLICATION>.exe
02136000-0214a000 r--p 01b36000 fd:00 11405299
  <APPLICATION>.exe
0214a000-02336000 rw-p 01b4a000 fd:00 11405299
  <APPLICATION>.exe
02336000-0aa75000 rw-p 00000000 00:00 0                                  [heap]
2aaaaaaab000-2aaaaaacc000 r-xp 00000000 fd:00 25952882
  /usr/lib64/ld-2.17.so
2aaaaaacc000-2aaaaaace000 r-xp 00000000 00:00 0                          [vdso]
2aaaaaace000-2aaaaaacf000 rw-p 00000000 00:00 0
2aaaaaacf000-2aaaaaad6000 r--s 00000000 fd:00 26217138
  /usr/lib64/gconv/gconv-modules.cache
2aaaaaad6000-2aaaaaada000 r--s 00000000 fd:00 20054063
  /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-le64.cache-4
2aaaaaada000-2aaaaaadb000 r--s 00000000 fd:00 20054511
  /var/cache/fontconfig/d04038e664b0033ae700a78c51f179d3-le64.cache-4
2aaaaaadb000-2aaaaaadd000 r--s 00000000 fd:00 20054031
  /var/cache/fontconfig/3640555adad8a8f6978400293cfce7ab-le64.cache-4
2aaaaaadd000-2aaaaaae5000 r--s 00000000 fd:00 20054540
  /var/cache/fontconfig/928306c3ad40271d946e41014a49fc28-le64.cache-4
2aaaaaae5000-2aaaaaae7000 r--s 00000000 fd:00 20054543
  /var/cache/fontconfig/f9d379b867d7c69c85310a4f24e5228f-le64.cache-4
2aaaaaae7000-2aaaaaae9000 r--s 00000000 fd:00 20054549
  /var/cache/fontconfig/99a1ce9f8b6a0434aadb01d3779b0780-le64.cache-4
2aaaaaae9000-2aaaaaaea000 r--s 00000000 fd:00 20054552
  /var/cache/fontconfig/b4d0b56f766d89640448751fcd18ec1e-le64.cache-4
2aaaaaaea000-2aaaaaaec000 r--s 00000000 fd:00 20054523
  /var/cache/fontconfig/d3379abda271c4acd2ad0c01f565d0b0-le64.cache-4
2aaaaaaec000-2aaaaaaed000 r--s 00000000 fd:00 20054532
  /var/cache/fontconfig/e61abf8156cc476151baa07d67337cae-le64.cache-4
2aaaaaaed000-2aaaaab2c000 rw-p 00000000 00:00 0
2aaaaab2c000-2aaaaab3e000 r--s 00000000 fd:00 20054148
  /var/cache/fontconfig/33315028185e8b9ecf55d3c7f93d9205-le64.cache-4
2aaaaab3e000-2aaaaab49000 r--s 00000000 fd:00 20054146
  /var/cache/fontconfig/12b26b760a24f8b4feb03ad48a333a72-le64.cache-4
2aaaaab49000-2aaaaab5c000 r--s 00000000 fd:00 20054533
  /var/cache/fontconfig/614d1caaa4d7914789410f6367de37ca-le64.cache-4
2aaaaab5c000-2aaaaab61000 r--s 00000000 fd:00 20054145
  /var/cache/fontconfig/b67b32625a2bb51b023d3814a918f351-le64.cache-4
2aaaaab61000-2aaaaab62000 r--s 00000000 fd:00 20054531
  /var/cache/fontconfig/3c3fb04d32a5211b073874b125d29701-le64.cache-4
2aaaaab62000-2aaaaab63000 r--s 00000000 fd:00 20054522
  /var/cache/fontconfig/2881ed3fd21ca306ddad6f9b0dd3189f-le64.cache-4
2aaaaab63000-2aaaaab64000 r--s 00000000 fd:00 20054524
  /var/cache/fontconfig/47f48679023f44a4d1e44699a69464f6-le64.cache-4
2aaaaab64000-2aaaaab65000 r--s 00000000 fd:00 20054520
  /var/cache/fontconfig/900402270e15d763a6e008bb2d4c7686-le64.cache-4
2aaaaab65000-2aaaaab66000 r--s 00000000 fd:00 20054536
  /var/cache/fontconfig/df893b4576ad6107f9397134092c4059-le64.cache-4
2aaaaab66000-2aaaaab67000 r--s 00000000 fd:00 20054550
  /var/cache/fontconfig/fa2b533b7056bdadb961f088bc0a978b-le64.cache-4
2aaaaab67000-2aaaaab68000 r--s 00000000 fd:00 20054546
  /var/cache/fontconfig/d290456e58f67f52b0f8f224126f9ea8-le64.cache-4
Program received signal SIGABRT, Aborted.
0x00002aaac9f081f7 in raise () from /lib64/libc.so.6
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
(gdb) bt
#0  0x00002aaac9f081f7 in raise () from /lib64/libc.so.6
#1  0x00002aaac9f098e8 in abort () from /lib64/libc.so.6
#2  0x00002aaac9f47f47 in __libc_message () from /lib64/libc.so.6
#3  0x00002aaac9f4f619 in _int_free () from /lib64/libc.so.6
#4  0x0000000000879dab in CORBA::Object::_decr_refcount
(this=0xaa12810) at
<thirdparty_libs>/ace_tao/include/tao/Object.inl:86
#5  0x000000000087c27d in CORBA::release<CORBA::Object*> (x=0xaa12810)
at <thirdparty_libs>/ace_tao/include/tao/CORBA_methods.h:58
#6  0x0000000000878c97 in
TAO_Pseudo_Var_T<CORBA::Object>::~TAO_Pseudo_Var_T
(this=0x7fffffff80f8)
    at <thirdparty_libs>/ace_tao/include/tao/Pseudo_VarOut_T.inl:29
#7  0x00002aaab52c8fa4 in
<POA_GENERATED_NAMESPACE>::<GENERATEDCLASS>::_this (this=0xa805180) at
<GENERATED_FROM_IDL_FILE>.cpp:871
#8  0x00002aaab5312932 in _INTERNAL56c1011e::RegisterName
(impl=0xa805180, context=0x2aaab544fadc "<CONTEXT>",
name=0x7fffffffb0f4 "<SERVERNAME>", type=0x2aaab544faf0 "<TYPE/KIND>")
    at CorbaInit.cpp:116
#9  0x00002aaab5313355 in CorbaStartServer (serverName=0x7fffffffb0f4
"<SERVERNAME>") at CorbaInit.cpp:263
#10 0x00002aaab535331b in <APPLICATION_MODULE>::initialise
(this=0xa76be20, argc=@0x7fffffffa588: 1, argv=0x7fffffffa798) at
<APPLICATION_MODULE>.cpp:45
#11 0x0000000000566ebd in _INTERNAL7e6e1e8c::StartModules
(modules=..., argc=@0x7fffffffa588: 1, argv=0x7fffffffa798) at
../Main.cpp:1033
#12 0x0000000000565db5 in DYNAMO_MAIN (argc=1, argv=0x7fffffffa798) at
../FeMain.cpp:420
#13 0x00000000005664bc in main (argc=15, argv=0x7fffffffa798) at
../FeMain.cpp:592

I had to replace some of the functions/file names...

The generated _this method looks now (6.5.7) like:

<NAMESPACE>::<CLASS> *
POA_<NAMESPACE>::<CLASS>::_this (void)
{
  TAO_Stub *stub = this->_create_stub ();

  TAO_Stub_Auto_Ptr safe_stub (stub);
  ::CORBA::Object_ptr tmp = CORBA::Object_ptr ();

  ::CORBA::Boolean const _tao_opt_colloc =
    stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ();

  ACE_NEW_RETURN (
      tmp,
      ::CORBA::Object (stub, _tao_opt_colloc, this),
      0);

  ::CORBA::Object_var obj = tmp;
  (void) safe_stub.release ();

  typedef ::<NAMESPACE>::<CLASS> STUB_SCOPED_NAME;
  return
    TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (
        obj.in ());
}

Before (5.5.4) it looked like:

<NAMESPACE>::<CLASS> *
POA_<NAMESPACE>::<CLASS>::_this (ACE_ENV_SINGLE_ARG_DECL)
{
  TAO_Stub *stub = this->_create_stub (ACE_ENV_SINGLE_ARG_PARAMETER);
  ACE_CHECK_RETURN (0);

  TAO_Stub_Auto_Ptr safe_stub (stub);
  ::CORBA::Object_ptr tmp = CORBA::Object::_nil ();

  ::CORBA::Boolean const _tao_opt_colloc =
    stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ();

  ACE_NEW_RETURN (
      tmp,
      ::CORBA::Object (stub, _tao_opt_colloc, this),
      0
    );

  ::CORBA::Object_var obj = tmp;
  (void) safe_stub.release ();

  typedef ::<NAMESPACE>::<CLASS> STUB_SCOPED_NAME;
  return
    TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (
        obj.in (),
        <NAMESPACE>__TAO_<CLASS>_Proxy_Broker_Factory_function_pointer
      );
}

And crashes on the return of the new one.

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:http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/TAO/docs/tutorials/Quoter/Naming_Service/index.html

    REPEAT BY:
I test everything locally, no extra servers, and the old version of
ACE TAO works without problems.

If anyone can point me in the right direction, that would be very much
appreciated!

Regards,
Yorick Bosman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.isis.vanderbilt.edu/pipermail/ace-users/attachments/20200311/d7ac07b3/attachment.html>


More information about the ace-users mailing list