Many important new features and bug fixes have been introduced in TAO 2.2a.
They are described briefly here. These and many other features of TAO 2.2a are
detailed in OCI's TAO
Developer's Guide, Version 2.2a, which is available separately.
For a detailed description of the motivation for and implementation of a
particular change, see the appropriate OCIChangeLog or ChangeLog
file in the TAO 2.2a source code distribution, such as ACE_wrappers/OCIChangeLog ,
ACE_wrappers/TAO/OCIChangeLog , ACE_wrappers/TAO/CIAO/OCIChangeLog and
ACE_wrappers/TAO/DAnCE/OCIChangeLog . Some ChangeLog entries may include a "ticket"
number (e.g., [RT 12345] ), to help customers track specific changes they have sponsored.
-
Features added and bugs/fixes in TAO 2.2a_p26
- Fixes for dlopen, inet_aton, gethostbyname, and gethostbyaddr on VxWorks 21.03
- Fixes for many warnings from gcc and Visual Studio
- Fixes for wide-character builds on Windows
-
Features added and bugs/fixes in TAO 2.2a_p25
- GCC 12 support
- Fixes for Static Initialization Order Issues Reported By AddressSanitizer
- VxWorks 21.03 support
-
Features added and bugs/fixes in TAO 2.2a_p24
- Added support for macOS Monterey
- TAO_IDL updates for valuetypes and versioned namespaces
-
Features added and bugs/fixes in TAO 2.2a_p23
- Fixed a bug in gnuace's make depend
- Added support for recent GCC versions with -std=c++20
- Fixed a bug in tao_idl when files or directories have spaces, improved error handling
-
Features added and bugs/fixes in TAO 2.2a_p22
- macOS Mojave support, updated other macOS versions
- Updated ACE_Atomic_Op_GCC to support newer atomic operations when available
- Added support for Visual C++ with /std:c++17 and 20
-
Features added and bugs/fixes in TAO 2.2a_p21
- Fixed SocketConnect::ip_check() concurrency and too-early request issues for Windows
- make install: use relative links in prefix/share
- TAO_IDL: IDLv4 Explicitly-named Integer Types
- TAO_IDL: Fix for issue #1550 - empty case evaluation on unions with enum discriminators
- Header file for TAO_IDL supported IDL features
-
Features added and bugs/fixes in TAO 2.2a_p20
- Support for building with the Android NDK directly
- Fixes for IPv6 multicast and inet_ntop/inet_pton on Windows
- Add Missing Export to ACE_OS::thr_gettid
- TAO_IDL: allow builds in paths with spaces
- TAO_IDL: fix a memory leak in wstring handling
- TAO_IDL: Support C++ keywords in DCPS_DATA_SEQUENCE_TYPE
-
Features added and bugs/fixes in TAO 2.2a_p19
- Map ACE_CDR LongLong to ACE_INT64
- Define ACE_HAS_(U)INT*_T for basic types when C++11 is enabled
- On Windows, use unnamed kernel objects (Events and Semaphores) for USYNC_THREAD
- Updates for Android NDK builds, including Windows-hosted
- Improve Multicast Join by Interface Name on Windows
- TAO_IDL_FE Extended Annotation Support
-
Features added and bugs/fixes in TAO 2.2a_p18
- Android platform support merged from the DOC repository
- Updated configuration files for current macOS/iOS versions
- Added IPv6 and datagram receive interface support for macOS/iOS
- Windows API version (_WIN32_WINNT) no longer set by ACE, uses platform default
- Enabled if_nametoindex on Windows
- ACE_INET_Addr::is_sitelocal for IPv6
-
Features added and bugs/fixes in TAO 2.2a_p17
- NOTE: the VERSION file is now VERSION.txt to avoid conflicts with C++'s standard <version> header on case-insensitive filesystems.
- sendmsg/recvmsg with msg_control for datagram sockets on Windows
- gnuace makefile updates
- Merged changes from the DOC repository providing support for iOS and Linux with glibc 2.30.
- Merged changes from the DOC repository relating to monotonic time and TAO_IDL Annotations.
- Merged changes from DOC repository fixing wchar literals in TAO_IDL
-
Features added and bugs/fixes in TAO 2.2a_p16
- Added support for the MQX OS.
- Merged changes from the DOC repository providing support for Android, clang, Visual Studio 2019, Qt 5, and GCC 7+.
- Merged changes from the DOC repository relating to ACE_Time_Value and timers, TAO_IDL annotations, Impl_Repo, 64-bit and general warnings, and postbuild targets in custom-only projects.
-
Features added and bugs/fixes in TAO 2.2a_p15
- Fixed Bugzilla #1220 for SHMIOP
- Elliptic Curve support in SSLIOP (-SSLECName)
- Added support for Visual Studio 2017 15.8
-
Features added and bugs/fixes in TAO 2.2a_p14
- Fixed DOCGroup issue #554 ACE_Singleton should work after ACE::fini, ACE::init
- Updated compiler and platform support
- Added support for OpenSSL version 1.1
-
Features added and bugs/fixes in TAO 2.2a_p13
- Extended SL2 Security Manager to easily allow non-secure collocated
invocations but still disallow non-secure remote invocations. Fixes Bug #2908
- Bug 1220 fix applied to SSLIOP (fixed for IIOP long ago)
- VxWorks 7 compatibility updates
- Support RPATH settings on latest Apple macOS
-
Features added and bugs/fixes in TAO 2.2a_p12
- Improved performance of the FT Naming Service's replicator feature
-
Features added and bugs/fixes in TAO 2.2a_p11
- Added support for Mac OS X on x86_64 to get the network adapter address in ACE_OS::getmacaddress().
- Added support for the December 2016 updates to VxWorks 7.
-
Features added and bugs/fixes in TAO 2.2a_p10
- Added support for Mac OS X El Capitan: generic config-macosx.h and platform_macosx.GNU can be
used on all versions of Mac OS X instead of using config files that end in the version's code name
- Added support for Linux on embedded ARM processors like the Raspberry Pi
- Reimplemented FT Naming Service to make use of a separate ORB for managing
peer updates. New command line arguments added to the FT_Naming_Service
executable. --ftEndpoint specifies a well-know endpoint for the
"replicator" orb, which is managing the peer access.
-
Features added and bugs/fixes in TAO 2.2a_p9
- Fixed a significant issue with FaultTolerant Naming service, which
turned out to be not as tolerant first though. The problem was identified
on RedHat Linux distributions using Perstent storage on an NFS mounted
file system.
- Improvements for the tao_imr include
- Detachment of child processes is now optional, See
$TAO_ROOT/orbsvcs/ImplRepo_Service/README for details
- Fix some cases where servers were very slow to terminate and triggered
the ImR Locator to become unresponsive regarding that service
-
- add a new command line argument to the logWalker utility to enable
the production of finer-grained output files when multiple files for
output is requested. See $TAO_ROOT/utils/logWalker/readme for info
on the -dd option as descriped in the README file.
- Fixed a variety of build dependency issues and other minor bugs
in some MPC files.
-
-
Features added and bugs/fixes in TAO 2.2a_p8
- Improve support for wchar-native platforms.
- Fix ZIOP sending very large messages.
- Default for -ORBUseParallelConnects is now 1, enabled.
- Added support for VxWorks 7
- Added ACE configuration for FACE safety profiles (see config-face-safety.h), note that TAO can't be built in this configuration but OpenDDS can.
- ACE uses new netdb.h functions (getaddrinfo/getnameinfo) if they are available in place of deprecated functions (gethostbyname/addr).
- Improvements for the tao_imr include
- Fix tao_imr truncating very long command lines in verbose server lists.
- Add new operation to force the removal of a running server.
- Improve the activator's ability to shut down processes on windows.
- ImplRepo now builds with uses_wchar=1.
- Improve support for IPv6 with SSL.
-
Features added and bugs/fixes in TAO 2.2a_p7
- Restore support for building on Solaris without Posix thread semantics
- New SSLIOP Factory option -SSLPassword facilitates distributing password protected private keys.
- New SSLIOP Factory option -SSLVersionList constrains the list of cipher versions allowed.
- New SSLIOP Factory option -SSLCheckHost adds a second layer of authentication by comparing the sending hostname to the name or names in the supplied certificate
- TAO IDL compiler now supports the Fixed type
- The logWalker debug analysis tool does a better job with pre-TAO 2.0a log files
- Incremental improvements in the ImR Activator
- Improved performance of FT ImR state synchronization under heavy load.
- New IOR Table feature refreshes endpoint lists in IORs
-
Features added and bugs/fixes in TAO 2.2a_p6
- Fix a memory leak in ImR that occurred in the backup locator
- Setting -ORBPreferIPv6Interfaces 0 now causes Address resolution to try IPv4 before trying IPv6.
-
Features added and bugs/fixes in TAO 2.2a_p5
- Build compatibility with newer patches of OpenSSL 0.9.8.
- Fix building static libraries on Solaris.
- Fix an ImR crash that occurred attempting to kill a server via a dead activator.
- Fix the connection cleanup strategy used with the Wait on Read client strategy.
-
Features added and bugs/fixes in TAO 2.2a_p4
- Build support for MacOSX Mavericks
- Improved performance of SSLIOP
- Fix a vulnerability arising from a malformed string in a GIOP payload
- Fix Thread_Per_Connection strategy holding on to purged connections.
- Fix the ImR’s MANUAL start mode to insure a crashed/killed server is not automatically restarted.
- Reimplemented the ImR’s start count feature to limit restart attempts.
-
Features added and bugs/fixes in TAO 2.2a_p3
- Improved the performance of the load balancing feature of the tao_ft_naming service.
Now a global load balancing strategy may be set via the command line using the new
-l ["random"|"round_robin"] argument. The newly implemented random strategy is lockless.
- Fixed active server detection when switching from the primary ImR locator to the backup.
This allows clients to request servers via either locator. The ImR activator now ensures that
non PER-CLIENT server instances are unique - no more than one will be running at any time.
- An interface change between the ImR locator and activator requires both be updated together.
-
Features added and bugs/fixes in TAO 2.2a_p2
- Added optional socket connection optimization for Windows.
- Fix bug with mt_noupcall that allowed upcalls while waiting for a new connection.
- Improved the performance of dynamic thread pool when activating new threads
- Improved the performance of the SYNC_WITH_SERVER oneway synchronization when used in conjunction with the CSD framework and POA thread pools.
- Fix support for long double types when used with dynamic Anys.
- Fix the ImplRepo to tolerate the case where the database of server info changes size while a list -a operation is being serviced.
-
Features added and bugs/fixes in TAO 2.2a_p1
- Fix VxWorks build problem.
- Fix IPv6 related issues that affect performance on newer Windows platforms
- Improvments to the Implementation Repository
- New tao_imr kill command to signal an otherwise unresponsive server.
- New tao_imr link command to identify groups of POAs that share a server.
- ImR is better able to avoid errantly starting multiple server instances
- Addressed several memory leaks and other assorted defects
- Added a new Client Strategy Factory option, -ORBDefaultSyncScope which
takes the label "None", "Transport", "Server", or "Target" to define the
sync scope to be used when a Messaging SyncScopePolicy is not in use.
- Fix for extra CDR padding bytes following a request header when there are no
IN or INOUT arguments in the request. This happened when a request had at least
one OUT argument, and also had a service context that ended off a CDR alignment
boundary. While this is not a problem for TAO-TAO messaging, some non-TAO
servers will reject such requests with a MARSHAL exception. See bug 4141 for more
information.
- Improved recursive typecode handling in the IDL compiler
- Support for using StringValue types in IDL
-
Features added since TAO 2.0a
Many features have been added to ACE and TAO since the release of TAO 2.0a. A comprehensive listing is
available in the NEWS files of each of the major package root directories. See in particular summaries
from the top of the file down to the ACE-6.0.4, TAO-2.0.4, or CIAO-1.0.4 releases.
The following list provides some highlights.
- Many performance improvements to the ACE/TAO core libraries.
- Generated skeleton code presents a smaller footprint, saving between 10 and 60% depending on use.
- There is now a TIME_POLICY strategy manager allowing for dynamic selection of either system time or highres time
- ZIOP compressed data performance is improved
- Generated ValueType OBV_* classes now provide a _copy_value() hook method for better duplication support.
- Multiple retries on invocation failures is now configurable. This works in conjunction with fault tolerant services to allow for transparent selection of the backup server if the primary fails
- Improved MIOP implementation to support message fragmentation.
- Added OpenSSL configuration options SSLCipherList and SSLServerCipherOrder to the SSLIOP_Factory. This allows the SSL/TLS BEAST exploit to be mitigated.
- Extended CosNotifyFilter::FilterFactory to allow removal of filters created by the factory.
- A new Dynamic Thread Pool is available for non-RT ORBs and POAs. This allows for automatic spawning of threads at runtime to some configured maximum as well as the destruction of spawned threads as load is reduced. Multiple thread pool definitions can be supplied via service configuration directives, then used by the ORB or POA. POAs may also be supplied dynamic thread pool configuration through new policy objects. Dynamic thread pools may be configured with a minimum and maximum thread counts, and an idle timeout. WHen the configured ORB or POA is activated, the minimum number of threads are spawned. The thread pool grows to the maximum count as load increases, then shrinks back to the minimum as threads sit idle. POA thread pools also accept a configurable message queue limit, above which requests are rejected.
- The Naming Service and Implementation repository are now Fult Tolerant, supporting a dual-redundant configuration which provides replication and seamless failover between primary and back up servers.
- Fault Tolerance is available for Naming and Implementation Repository services. This makes use of shared persistent state and communication between a primary and backup instance. Clients make use of automatic retry to switch from a failed primary to a back up server without application intervention.
- Implementation Repository now uses asynchronous messaging to improve efficiency under heavy use conditions.
- Implementation Repository is now able to register and launch JacORB servers. Requires JacORB 3.3 or later
- New ORB initialization arguments:
- -ORBForwardOnExceptionLimit count supercedes -ORBForwardOnceOnException to accept a count of retries. Exception in this case is CommFail, Transient, ObjectNotExist, InvObjref, ReplyClosed
- -ORBForwardDelay msecs
- -ORBDynamicThreadPoolName name
- New Client Strategy Factory options:
- Client strategies -ORBWaitStrategy RW and -ORBTransportMuxStrategy Exclusive now work with AMI
- -ORBCollocationStrategy best selects the best available strategy.
- Other factory options
- UIPMC transport -ORBPreferredInterfaces, -ORBListenOnAll
- MIOP transport -ORBSendThrottling and -ORBEagerDequeueing
See TAO/docs/options.html or the TAO Developer's Guide 2.2a for details about these new options.
- IDL Compiler Improvments:
- Fixed a bug related to component initialization.
- Fixed a bug related to processing multiple files in a single execution.
-
Important bug fixes since TAO 2.0a
Many bugs have been fixed or work-arounds provided since TAO 2.0a. For more
details, see the release announcements for the intervening DOC group beta kits
(from 2.0.4 to 2.2.0), the ChangeLogs, and the DOC group Bugzilla bug database
found at http://bugzilla.dre.vanderbilt.edu. A summary and selection of the more important fixes are listed below.
- Fixed ACE bugs:
- bug #897 Extend ACE_Sig_Handler to call handle_close (SIGNAL_MASK) on unregister signal
- bug #1405 Race condition in ACE_Connector
- bug #2368 Handle_close not called for event handlers register for signals
- bug #3051 High_Res_Timer_Test fails within virtual machine
- bug #3703 ACE_High_Res_Timer runs too slow, when compared to the standard system time function: ACE_OS::gettimeofday().
- bug #3706 Locking strategy hard-coded for reactor timer queues
- bug #3707 Reduce overhead for gettimeofday() policy in Timer_Queue
- bug #3958 debian doesn't ship sslv2 anymore
- bug #3994 Reduce condition code
- bug #3996 Move ADBC to its own repository
- bug #3999 Build ACE+TAO for ARM processor using cross compilation toolchain
- bug #4002 MPC should always install .inl files
- bug #4008 Service_Gestalt fails open_i() when loading statics only and a default svc.conf is not present
- bug #4015 Dev_Poll_Reactor::resumeable_handler should return 1
- bug #4019 Dev_Poll_Reactor::mask_ops_i should return -1 on error
- bug #4020 Remove tandem nsk support
- bug #4021 useless use of dynamic format in ACE_Thread_ID::to_string()
- bug #4029 ACE_Cache_Map_Manager::find(const KEY&) compile error
- bug #4055 ACE conditions with pthread and time shift fail
- Fixed TAO bugs
- Addressed several Coverity reported issues.
- bug #1391 _copy_value() not implemented for valuetypes
- bug #2241 Crash when specifying direct collocation with no direct collocation generated
- bug #2460 Eliminate hand-crafting of code generated from .pidl files
- bug #2623 Add ZIOP support to TAO
- bug #2667 TAO/tests/Nested_Upcall_Crash failing for a long time now (Windows, mainly)
- bug #3000 Handle leak upon oneway invocation with RW wait startegy
- bug #3019 Make methods in TAO_ServantBase optional
- bug #3384 Oneway_Timeouts test failure
- bug #3531 client leader threads can't give up leadership via set_upcall_thread
- bug #3608 CompressionFactory should store compressors
- bug #3610 ZIOP has to be enabled by default
- bug #3679 ORB should be able to use high res timers
- bug #3698 Valgrind reports use of uninitialized value
- bug #3763 alternative C++ mapping - std strings & vectors for IDL strings & sequences
- bug #3768 Multi-threaded CORBA application can be deadlocked inside TAO
- bug #3774 Disable upcalls on a per-thread basis
- bug #3991 major footprint reduction possible in generate skeletons
- bug #4004 Proposed new Run Length Encoding (RLE) compressor package for TAO
- bug #4006 Notification service memory growth
- bug #4009 problem with generating ciao executor
- bug #4010 Wait_On_Read leaves socket unmonitored after oneway operation
- bug #4022 SSLIOP enhancement needed to mitigate BEAST attack.
- bug #4075 Not installing ObjRefTemplate library can lead to a deadlock
- bug #4080 MIOP servants are still serialized when running in a thread pool
- bug #4082 Any extraction to equivalent type
- bug #4086 IDL compiler do not generate "set_attributes" if rw attributes in indirect supports interface
- bug #4090 Problem generating ostream operator for enums
- bug #4091 Implement Fault Tolerant Implementation Repository
- bug #4092 Implement Fault Tolerance for Naming Service
- bug #4093 Implement Dynamic Thread Pools in ORB
- bug #4094 Managing Dynamic Thread Pools in POA
- bug #4095 Provide Load Balancing in Naming Service
- bug #4096 Enhanced TAO Invocation Retry Mechanism
- bug #4099 TAO_Service_Type_Repository list_types leaks memory.
- bug #4100 Several memory leaks in the Trader and fix its tests.
- bug #4101 Extend TAO's Implementation Repository to allow it to manage JacORB application servers.
- bug #4103 Bogus Timeouts for large payload RMIs
- Fixed CIAO/DAnCE bugs:
- bug #1716 Direct collocation and components do not mix.
- bug #2530 Doubt about the need for dynamic servant activation
- bug #3777 Investigate usage of inheritance of generated servants
- bug #3987 cif common leaks exception
- bug #4087 tao_idl3_to_idl2 handle mirror port improperly
- bug #4089 DDS_Base_Connector_T.cpp seems to have a program flow error
|