Jump to a release:
HEAD
- Not yet released...
- CORAL-preview
- [HEAD VersionInfo is 2.4.0: no need to update it as code base changes].
- Summary of API changes (user-code compatible but not binary compatible):
- In CoralKernel, change the implementation of plugins and of the plugin manager to provide and locate a function that is then used to get a pointer to the component factory (bug #92167), instead of providing and locating directly a pointer to the component factory. Enabled as CORAL240PL is enabled (via CORAL240) and always for clang.
- In CoralKernel, redeclare IPropertyManager as class instead of struct. This fixes the 'struct was first seen as class' build warning on vc9 (bug #63198) and clang (bug #79151). The API was internally inconsistent: Context.h forward declares IPropertyManager as a class. Enabled as CORAL240PR is enabled (via CORAL240) and always for clang.
- Fixes in the HEAD version of CORAL_SERVER:
- Add a possible fix for MonitoringService failures in multi threaded mode (bug #94583).
- Incomplete TODO list for the CORAL 2.4 API changes
- Fix Coverity issues in CORAL API headers in CoralBase (bug #95355, bug #95362) and CoralKernel (bug #95358, bug #95359).
- Merge the 23 and HEAD branches of CORAL_SERVER (task #22914).
- Check if an attribute with a given name already exists in an AttributeList (task #20089).
- Simplify the PropertyManager API (task #30840). Note that this cannot be dropped as it was requested by CMS to avoid the use of environment variables (task #6857).
- CORAL_2_3-patches
- [Branch VersionInfo is 2.3.27: you need to update it as code base changes].
- [TO DO: check m_mutex in Transaction.cpp, probably needed]
- Fix CoralBase requirements for ThreadProfiling test (add build option for clang, remove gcc4.8 build option not supported for gcc4.2/gcc4.3).
- Do not install the LFCReplicaSvc source code any longer (as of CORAL 2.3.23 this was installed but no longer built).
- Fixes and enhancements in CORAL_SERVER tests
- Minor configuration fixes to run HLT tests also on SLC6.
- Improve workaround setting up Python LD_LIBRARY_PATH in CORAL_SERVER HLT test to be able to set the environment using AtlasSetup (bug #100413). This is only needed in the 'cwd' tests and only for Python.
- COOL-preview
- [HEAD VersionInfo is 2.9.0: no need to update it as code base changes].
- [Same as COOL_2_8-patches]
- Incomplete TODO list for the COOL 2.9 API (and/or schema) changes
- IRecord assignment operator should be private (bug #95823).
- Fix Coverity issues in COOL API headers (bug #95363).
- Manage vector payload in COOL (task #10335).
- Expose CORAL sessions and transactions (task #6154).
- Get the first and last IOV in a tag (sr #120416).
- Store DATE values more efficiently (task #5112).
- COOL_2_8-patches
- [Branch VersionInfo is 2.8.18: you need to update it as code base changes].
- POOL-preview
- Adapt nightlies config, code and ref logs to new user sftnight (bug #100746).
- Keep config for old user lcgnight in parallel for the time being. The dblookup.xml file only contains entries for the new user sftnight, but these are also used for the old user lcgnight.
- Externals
- LCGCMT-preview
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- See the changes in LCG_Configuration since LCGCMT_65.
- This is the configuration built in the dev nightlies.
- Upgrade Python to 2.7.4 (from 2.7.3) only on gcc 4.8.0, to try and provide a fix for some build warnings observed in PyCoral (SPI-272). However the issue does not yet seem to be fixed in Python 2.7.4. See http://bugs.python.org/issue17547 and http://hg.python.org/cpython/file/9290822f2280/Misc/NEWS#l8965.
- Rebuild gccxml natively on gcc 4.8.0 to fix PyCool builds (SPI-270). Using a gcc472 build of gccxml fails as it requires the use of some gcc libraries that are only available in the gcc480 runtime environment.
- LCGCMT_64-patches (was LCGCMT_64d)
- This is the configuration built in the dev3 nightlies.
- Fix in LCG_Interfaces/valgrind: prepend valgrind to PATH instead of appending it.
- LCGCMT_61-patches (was LCGCMT_61g)
- This is the configuration built in the dev3 nightlies.
- Fix in LCG_Interfaces/valgrind: prepend valgrind to PATH instead of appending it.
- ROOT 5.34 patches
LCGCMT 65 (2013.05.07)
- Requested by ATLAS online
- This is the first production release built with c+11 (for gcc47 builds).
- This is the first production release built with Python 2.7 and Boost 1.50. It has the same set of externals as the LCG65rc1 release candidate, with a few additional fixes and improvements.
- Fixes and enhancements in CORAL and COOL.
- CORAL 2.3.27
- Port the code base to gcc 4.8.0
- Fix build warnings due to Boost headers and other CORAL-specific build warnings (bug #101273).
- Workaround for build warnings in PyCoral (SPI-272). Upgrading Python from 2.7.3 to 2.7.4 for gcc 4.8.0 was not enough to fix this.
- Fixes for icc
- Keep both icc11 and icc13 setup scripts with different names.
- Fix an icc11 build warning in the Integration_WriteRead test.
- Improvements in profiler wrapper scripts
- Improve the valgrind suppression file for Python issues. Move suppression files to the scripts directory.
- Add a wrapper for gperftools using the installed version in tcmalloc. This requires adding a dependency on tcmalloc.
- Keep different logs for different CMTCONFIG and LCGCMT in the igprof wrapper.
- Minor improvements in the callgrind wrapper.
- Add a ThreadProfiling test specifically to debug igprof and gperftools.
- COOL 2.8.18
- Fix toupper namespace in IHvsNode.h (bug #101246).
- Port code base to gcc 4.8.0
- Fixes for icc
- Keep both icc11 and icc13 setup scripts in CORAL with different names.
- Disable an 1cc11 build warning in PyCool (bug #101369).
- Improvements in profiler wrapper scripts
- Always use the valgrind suppression file from CORAL, remove the duplicate previously present in COOL.
- Externals
- LCGCMT_65
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- See the changes in LCG_Configuration since LCGCMT_65rc1.
- Use EMI2 Grid packages also on 32bit platforms thanks to the fix for ROOT bug #98163 aka INC238551. Upgrade the versions of all EMI2 Grid packages.
- Fix in LCG_Policy for SPI-256: enable c++11 for CORAL and COOL while keeping it disabled in RELAX.
- Upgrade the oracle client to 11.2.0.3.0 also on macosx.
- ROOT 5.34.07
- Platforms
- Eight platforms (they were fourteen in LCG65rc1). two x86_64-slc5-gcc46 (opt/dbg), two x86_64-slc6-gcc46 (opt/dbg), two x86_64-slc6-gcc47 (opt/dbg). and the two new i686-slc6-gcc47 (opt/dbg).
- The four slc5-gcc43 (32/64bit opt/dbg) and the two x86_64-slc5-gcc47 (opt/dbg) platforms have been dropped (only 64bit gcc46 is still supported on SLC5).
- The two x86_64-mac106-gcc42 (opt/dbg) builds have not been provided yet.
- Note that c++11 extensions are now enabled in all gcc47 builds (also for CORAL and COOL).
LCGCMT 65rc1 (2013.03.18)
- Requested by ATLAS online
- This is the first release candidate using c+11 (for gcc47 builds).
- Pending bug SPI-256 in LCG_Policy: CORAL and COOL are still built without c++11.
- This is the first release candidate with Python 2.7 and Boost 1.50.
- Fixes and enhancements in CORAL and COOL.
- CORAL 2.3.26
- Fixes for memory leaks and improvements related to valgrind/igprof.
- Fix memory leak for ConnectionService in PyCoral (bug #100573): wrap ConnectionService instead of IConnectionService that has a private destructor and cannnot be deleted.
- Fix memory leaks from newConnection and lookup in Integration_AliasesSynonyms test (bug #100600) by inlining getSession and getServiceDescription.
- Fix memory leak from lookup in OracleAccess test for simple connection (bug #99879) by inlining getServiceDescription.
- Fix memory leak in Testing that shows up only in Integration_InputOutput test (bug #100601). Merge all test files from Integration_InputOutput into a single one.
- Cosmetics in OracleAccess (add comments to clarify object ownership).
- Improve valgrind/igprof wrappers (allow executable arguments and modify igprof log file names accordingly). Improve valgrind suppression file for __intel_new_memcpy in the Oracle client (bug #98791) and for other Oracle client issues. (bug #100874). Add real and user time (-pr and -pu) options for igprof. Add wrapper for callgrind and kcachegrind.
- Initial attempts at wrapping CORAL_SERVER tests through igprof.
- Add valgrind suppression for leak in memalign through python (bug #100599).
- Add private workarounds for ngoyal and avalassi about missing igprof in LCG61e and LCG61f (SPI-233). Keep it enabled as it will not affect anything else than LCG61e and LCG61f.
- Enhance the Integration_WriteRead test to also allow simple stress tests, though several enhancements are still needed (bug #100864).
- Complete the port to gcc47
- Replace <linux/unistd.h> by <unistd.h> in CoralMonitor (bug #100908). This bug was probably introduced after the previous release.
- Complete the port to icc13
- Fixes in config for icc13 setup.
- Fix icc13 compilation in CORAL_SERVER/CoralStubs (bug #100416): rename __SIZEOF_XXX__ as __CORALSTUBS_SIZEOF_XXX__ and __TYPEOF_XXX__ as __CORALSTUBS_TYPEOF_XXX__ to avoid clashes with native compiler definitions.
- Fix an icc13 build warning in the AliasesSynonyms test.
- Disable warnings triggered by the Boost 1.50.0 headers on icc (bug #100415) by modifying the wrapper headers in CoralBase and CoralCommon.
- Disable warnings triggered by the XercesC headers on icc (bug #100415) on two cpp files in CORAL_SERVER/CoralAuthenticationService.
- Complete the port to clang32
- Move operator<< for Attribute and AttributeList inside coral namespace to fix clang32 compilation by Koenig lookup (CORAL bug #100663 aka ATLAS bug #100527). This is an API change that is also implemented for all other compilers (protected by #ifdef CORAL240CL).
- Add a test for this bug in CoralBase (only built, no need to execute it).
- Fixes and improvements in CMT configuration.
- Prototype new LCG_Policy patterns (SPI-169) inside CoralBase/cmt. Redefine pattern coral_utility based on new lcg_application pattern, inheriting gcov/icc linkopts instead of adding them explicitly (bug #91133)
- Remove application fragment in CoralBase/cmt (workaround for LCGCMT bug #45911, which has been fixed since a long time).
- Ensure that system man paths are included in MANPATH after sourcing CMT setup scripts (bug #100774)
- Adapt nightlies config to new user sftnight (bug #100746).
- Keep config for old user lcgnight in parallel for the time being. The dblookup.xml file only contains entries for the new user sftnight, but these are also used for the old user lcgnight. In CORAL this should require changes only to five files: CoralBase/tests/Common/CoralCppUnitDBTest.h, Tests/CORAL_SERVER/test_functions.sh, Tests/CORAL_SERVER/CoralAccess/testCoralServer.py, Tests/PyCoral_ImportPyCoral/PyCoralTest.py, config/qmtest/LCG_QMTestExtensions.py.
- However many CORAL tests (in OracleAccess, SQLiteAccess, ConnectionService) had an 'lcgnight' string hardcoded that also had to be changed.
- Changed some reference logs too, even if it is not clear if needed.
- Test cleanup and other fixes in tests and test configuration. Some of these are related to the move to new user sftnight (bug #100746).
- Improve the network glitch test so that it fails immediately if a tunnel cannot be opened, e.g. due to GSSAPI failures (bug #100763).
- Print HOST and `hostname` in qmtest ENVIRONMENT.
- Remove reference log files that were already unused in unit tests (bug #100755), as these are only used in some integration tests in qmtest. Remove unused OvalFile's.
- Merge test source code into a single file where not already done (in FrontierAccess and MySQLAccess). Rename test sources as test_xxx.cpp.
- Move boost_tuple_headers.h from a test directory to CoralCommon includes.
- Remove authentication.xml and dblookup.xml from FrontierAccess/tests and MySQLAccess/tests subdirectories.
- COOL 2.8.17
- Adapt nightlies config to new user sftnight (bug #100746).
- Keep config for old user lcgnight in parallel for the time being. The dblookup.xml file only contains entries for the new user sftnight, but these are also used for the old user lcgnight.
- Fixes and improvements in CMT configuration.
- Prototype new LCG_Policy patterns (SPI-169) inside CoolKernel/cmt.
- Adapt the workaround for bug #96081 with Boost 1.50 accordingly in RelationalCool/cmt.
- Redefine cool_utility based on lcg_application (SPI-169). Move it from CoolKernel/cmt to RelationalCool/cmt as it is only used there. Fix it to install binaries in bin instead of utilities/bin (bug #100780).
- Remove application fragment in CoolKernel/cmt (workaround for LCGCMT bug #45911, which has been fixed since a long time).
- Ensure that system man paths are included in MANPATH after sourcing CMT setup scripts (bug #100774)
- Print HOST and `hostname` in qmtest ENVIRONMENT.
- Remove scram BuildFiles. These are obsolete and no longer used (the latest scram uses BuildFile.xml and CMS does not build COOL).
- Fixes in config for icc13 setup.
- Test cleanup and other fixes in tests and test configuration. Some of these are related to the new LCG_Policy pattern prototypes (SPI-169).
- Remove the inclusion of ../tests/Common from the CMT test pattern, modify all tests accordingly to include the appropriate headers.
- Use a single copy of CoolUnitTest.h, SimpleTimer.h and CppUnit headers. Move the most recent ones from RelationalCool/tests/Common to CoolKernel/tests/Common.
- Replace identical CMT patterns cool_db_test and cool_test by a single pattern cool_unit_test (to be consistent with coral_unit_test).
- Move CMT pattern cool_example from CoolKernel to Examples, as it is only used there.
- Remove cppunit/TestListener.h from both RelationalCool/tests/Common and CoolKernel/tests/Common. This had been introduced as a workaround for a CppUnit bug causing build warnings, but is no longer needed (bug #100791).
- Externals
- LCGCMT_65rc1
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- See the changes in LCG_Configuration since LCGCMT_64d.
- Upgrade Python to 2.7.3 (was 2.6.5p2).
- Upgrade Boost to 1.50.0 (was 1.48.0p1).
- Upgrade Qt to 4.8.4 (was 4.7.4) to allow the build of ACE and ROOT on gcc4.7 with c++11 (bug #98084).
- Upgrade gccxml to 0.9.0_20120309p1 (was 0.9.0_20110825).
- Upgrade igprof to 5.9.6 (was 5.9.2).
- Upgrade valgrind to 3.8.0 (was 3.7.0).
- Upgrade xrootd to 3.2.7 (was 3.2.4).
- Fix the ROOT builder on gcc4.7 with c++11 (bug #97948) in LCG_Builders/ROOT.
- Fix in LCG_Interfaces/valgrind: prepend valgrind to PATH instead of appending it.
- ROOT 5.34.05_65rc1
- Platforms
- Fourteen platforms (they were nine in LCG64d): four slc5-gcc43 (32/64bit opt/dbg), two x86_64-slc5-gcc46 (opt/dbg), two x86_64-slc6-gcc46 (opt/dbg), two x86_64-mac106-gcc42 (opt/dbg) and the four new x86_64-slc5-gcc47 (opt/dbg) and x86_64-slc6-gcc47 (opt/dbg). The x86_64-mac106-gcc42-dbg build has also been re-enabled.
- This is effectively the first release supported for gcc47. Note that c++11 extensions are now enabled in all gcc47 builds.
- Pending bug SPI-256 in LCG_Policy: CORAL and COOL are still built without c++11.
LCGCMT 61g (2013.02.25)
- Requested by the Persistency team
- Fix missing igprof in LCG_Interfaces (SPI-233). Upgrade igprof from 5.9.2 to 5.9.6.
- No other upgrade or rebuild.
- CORAL 2.3.24a
- Move to LCGCMT_61g the release prepared for LCGCMT_61f, without rebuilding.
- COOL 2.8.15a
- Move to LCGCMT_61g the release prepared for LCGCMT_61f, without rebuilding.
- POOL 2.9.21
- Move to LCGCMT_61g the release prepared for LCGCMT_61f, without rebuilding.
- External
- Platforms
- Six platforms (as in LCG61f): four slc5-gcc43 (32/64bit opt/dbg) and two x86_64-mac106-gcc42 (opt/dbg).
LCGCMT 64d (2013.02.12)
- Requested by LHCb and ATLAS
- Upgrade all Grid package to EMI2 (only on 64bit, keep Globus on 32bit).
- EMI2 is needed to fix Grid packages on SLC6 as requested by LHCb on 64bit.
- EMI2 gfal is still broken on 32bit (bug #98163 aka INC238551).
- 32bit on SLC6 will not be built because there is no gfal for it and neither ATLAS nor LHCb need this anyway. 32bit is only needed by ATLAS for SLC5.
- Remove LCG_Interfaces/zlib directory from LCGCMT as requested by ATLAS.
- Fix ROOT compilation errors with castor 2.1.13-6 (bug #98559) as requested by ATLAS.
- Add gcc47 builds on x86_64-slc6 (without c++11) as requested by ATLAS.
- Fixes and enhancements in CORAL and COOL.
- CORAL 2.3.25
- Fixes in OracleAcces.
- Do not retry to connect on ORA-28000 and throw immediately if account is locked (bug #99489).
- Fix memory leaks reported by valgrind:
- Fix memory leak in CoralKernel Pluginmanager test (bug #98958).
- Fix memory leak in CoralKernel ExternalPluginManager test (bug #99580).
- Fix memory leak in OracleAccess Connection test (bug #99881).
- Fix memory leak in SQLiteAccess BulkInsert test (bug #100199).
- Fix memory leak in SQLiteAccess BulkOperations test (bug #100200).
- Improvements in nightly test code and configuration.
- Assign unique table names to new platforms (gcc47, clang31, clang32, icc13) in C++ (CoralBase/tests/Common/CoralCppUnitTest.h) and and python (Tests/PyCoral_ImportPyCoral/PyCoralTest.py) test base classes (bug #100411).
- Add host:port to CORAL_SERVER exception message "Error binding socket" (bug #100412) to simplify nightly test debugging.
- Setup local runtime environment in CORAL_SERVER HLT test to be able to set the environment using AtlasSetup (bug #100413).
- Port to clang32: fix build warnings reported by clang32 in core CORAL (bug #99800) and CORAL_SERVER (bug #99801) packages.
- Configuration enhancements and cleanup
- Remove obsolete directory config/ReleaseTools.
- Add config/scripts directory. Configure its contents to be copied to bin.
- Add a valgrind wrapper.
- Add igprof dependency for CORAL tests in config/cmt. Add an igprof wrapper to produce memory/performance profiling reports in a dedicated web page (https://test-coral-igprof.web.cern.ch).
- Fixes and improvements in CORAL_SERVER, while making progress in the merger of the three CORAL_SERVER branches (task #22914).
- Fix memory leak in CoralMonitor (bug #98792) and remove it from the valgrind suppression file.
- Rename next() methods as nextRow() and nextBuffer() to distinguish them better in CoralStubs (task #39773).
- Clean up IByteBufferIterator ownership in CoralStubs (bug #100174). Backport in the 23branch from HEAD and 24branch: replace an IByteBufferIterator bare pointer by an auto pointer in RowIteratorAll (still making sure that this is deleted after all other instances) and modify ClientStub accordingly. Go back in HEAD and 24branch to the older 23branch code: keep IByteBufferIterator ownership (as an auto pointer) in RowIteratorAll and pass it only as a reference to SegmentReaderIterator; modify ClientStub, ServerStub, RowIteratorFetch and tests accordingly. Fix a crash (bug #100225) introduced in the first incorrect implementation.
- Backport cleanup of RowIteratorFetch in CoralStubs 23branch from 24branch: remove maxrows which was never used (cachesize is set in other ways).
- Fix exception messages in CoralStubs (in all three branches).
- Replace CppMutex by standard boost mutexes in CoralStubs (task #39442).
- Drop StopTimer test from CoralServerBase (bug #73030) in all 3 branches and fix requirements (duplicate, test moved long ago to CoralMonitor). Remove enableTimings from StopTimer in 23/24 branches (no longer used). Remove deleteTimings from StopTimer in all 3 branches (no longer used). Remove unused TimerStat/TimerManager in 23/24 branches from StopTimer.cpp. Move ScopedTimer definition from StopTimer.h to ScopedTimer.h in 23/24 branches as in HEAD. Rename ScopedTimerStats as Scoped Timer and remove the old ScopedTimer in 23/24 branch as in HEAD, change CoralServerBase/CoralSockets accordingly.
- Add direct dependency of CoralStubs on CoraCommon and CoralMonitor in 24 and HEAD as in 23 (CoralCommon is needed for boost random headers)
- Improve TimerManager singleton in 23/24 as in HEAD.
- Move CoralServerBase/logger.h to CoralMonitor/logger.h in 23branch and 24branch as already in HEAD. In CoralMonitor remove calcMean from StopTimer.h into a different header in 23/24 as in HEAD (but fix the Coverity issues in the HEAD as in 23/24)
- Backport CoralStubs monitoring in 23branch from 24branch: add no-op SCOPED_TIMER macro in CoralMonitor/ScopedTimer.h, replace commented-out ScopedTimer in ClientStub by SCOPED_TIMER and add no-op SCOPED_TIMER in ServerStub, RowIteratorAll and RowIteratorFetch. Clean up monitoring in ClientStubs HEAD/24branch: replace ScopedTimer by SCOPED_TIMER macro and simplify headers in ServerStub.cpp, which can now be the same in both branches (SCOPED_TIMER is disabled in 24branch). Remove schema/tableList args for monitoring in HEAD and 24branch SegmentReaderIterator::extract for FetchAllRows (bug #100255).
- Make sure "CORAL Server timings enabled" is printed only once by StopTimer in 23/24 branch.
- Backport CoralAccess monitoring from 24branch/HEAD into 23branch. Monitoring is in any case disabled in CoralMonitor/ScopedTimer.h.
- Backport CoralServer monitoring from HEAD into 23branch/24branch. Monitoring is in any case disabled in CoralMonitor/ScopedTimer.h.
- Backport other minor fixes and improvements in CoralServer, CoralStubs and CoralAuthenticationService in the 23branch from HEAD and 24branch.
- Cleanup CORAL_SERVER using coolCppClean.
- Remove all remnants of Windows support from the CORAL_SERVER code.
- Reduce diferences between 23branch, 24branch and HEAD manually. Remove old code already commented out.
- Simplify dumpPath() and dumpEnabled() in PacketSocket.cpp.
- COOL 2.8.16
- Generate PyCool dictionaries for map iterator (fix bug #99488). Add some comments and private tests for this issue.
- Minor changes in RelationalCool script installation configuration.
- Externals
- LCGCMT_64d
- ROOT 5.34.05
- See the ROOT 5.34 patch release notes.
- Fix ROOT compilation errors with castor 2.1.13-6 as DLL_DECL is not defined in castor anymore (bug #98559).
- Platforms
- Nine platforms (they were twelve in LCG64c): four slc5-gcc43 (32/64bit opt/dbg), two x86_64-slc5-gcc46 (opt/dbg), two x86_64-slc6-gcc46 (opt/dbg), one x86_64-mac106-gcc42 (opt).
- The two x86_64-slc5-icc11 builds have been dropped (eventually new releases will be built for icc13 instead). The x86_64-mac106-gcc42-dbg build has also been dropped.
- This was originally the first release supported on gcc47 (with c++11 extensions disabled). It had originally been built also for the two new x86_64-slc6-gcc47 (opt/dbg) platforms, but these have eventually been removed.
LCGCMT 64c (2013.01.22)
- Requested by LHCb
- Changes in external package versions. Update CASTOR to 2.1.13-6. Remove zlib dependency from LCG_Release.
- No other upgrade or rebuild.
- CORAL 2.3.24
- Move to LCGCMT_64c the release prepared for LCGCMT_64b, without rebuilding.
- COOL 2.8.15
- Move to LCGCMT_64c the release prepared for LCGCMT_64b, without rebuilding.
- Externals
- Platforms
- Twelve platforms (as in LCG64b): four slc5-gcc43 (32/64bit opt/dbg), two x86_64-slc5-gcc46 (opt/dbg), two x86_64-slc5-icc11 (opt/dbg), two x86_64-slc6-gcc46 (opt/dbg), two x86_64-mac106-gcc42 (opt/dbg).
LCGCMT 61f (2012.11.26)
- Requested by ATLAS
- Rebuild of most recent CORAL and COOL releases against LCG61 externals.
- Fixes for network glitch handling in CORAL and CoralServerProxy to address the observed crashes in ATLAS HLT (bug #98514)
- Minor fixes in POOL.
- Upgrade to oracle 11.2.0.3.0 (from 11.2.0.1.0p3) with important security fix, as in LCGCMT_64b.
- CORAL 2.3.24a
- Rebuild of CORAL 2.3.24 code base (most recent release).
- Minor fixes in CORAL_SERVER test configuration
- Add workaround for ORA-01466 against Oracle 11g (bug #87935).
- Fix Frontier/Squid configuration in dblookup.xml for HLT tests (bug #99334), while keeping FRONTIER_SERVER unset (bug #87307).
- COOL 2.8.15a
- Rebuild of COOL 2.8.15 code base (most recent release).
- POOL 2.9.21
- Changes in RelationalCollection: use bound var in records_written update statements in RelationalCollectionDataEditor.
- Externals
- Platforms
- Six platforms (as in LCG61e): four slc5-gcc43 (32/64bit opt/dbg) and two x86_64-mac106-gcc42 (opt/dbg).
LCGCMT 64b (2012.11.21)
- Requested by LHCb
- Several changes in CORAL and COOL:
- Add support for Oracle authentication via Kerberos in CORAL and COOL.
- Integrate valgrind in the CORAL and COOL test suites. Fix some memory leaks in CORAL.
- Fixes for server-side connection management in CoralServerProxy.
- Start cleaning up the API extensions for the upcoming new releases.
- Fix issues found by the Coverity static analyzer in CORAL and COOL.
- Port the CORAL and COOL code base to c++11 in gcc47 and to Boost 1.50.
- Upgrade ROOT to 5.34.03 (from 5.34.00)
- Changes in external package versions. Upgrade oracle to 11.2.0.3.0 with important security fix.
- CORAL 2.3.24
- Implement Kerberos authentication in OracleAccess.
- Implement Kerberos authentication to Oracle in CORAL (task #30593). Null password and username will lead to Kerberos authentication for the current Kerberos principal. Null password and non-null username will lead to Kerberos proxy authentication for the given username.
- Do not retry to connect on ORA-01005 and throw immediately if null password is given (bug #98746). This should in any case no longer be possible as an empty password leads to Kerberos authentication.
- Fixes and improvements for memory leaks in OracleAccess (follow up the memory leaks observed in the latest CoralServer, bug #98514).
- Fix a possible memory leak in OracleAccess (bug #98736): release current OCI handles in Session and Connection. This is probably not a real leak: releasing the current handles in the Session/ConnectionProperties dtors should normally not be needed because the current handles should have already been moved to the garbage bin by Connection::disconnect and Session::endUserSession. Add infrastructure to print out Create/Delete in all relevant classes.
- Fix memory leak in test_integration_ObjectConsistency (test used to analyse bug #98736).
- Replace bare OCI pointers by sessionProperties in PolymorphicTVector (bug #98741). This improves the traceability of OCI handle ownership.
- Improve valgrind suppression file in Tests/cmt and related tools. Rename the suppression file as valgrind.supp and recreate it from scratch: first from OCI-only tests outside CORAL and COOL; then include all suppressions coming from the ObjectConsistency test. There are a few leaks to be checked, but most likely they can also be ignored (i.e. bug #98736 is completely fixed).
- Improvements in valgrind configuration for CORAL (task #12672).
- Move valgrind tools from Tests/cmt to config/qmtest. Improve valgrind suppression file using coralServer tests and other CORAL and COOL tests. Add valgrind suppressions for python too.
- Instrument the CORAL qmtest suite to optionally use valgrind. If CORAL_TESTSUITE_VALGRIND is set then 'qmtest run' will pass the test through valgrind; this is set in the execQmtest.sh script if '-valgrind' is given as first argument. An alternative suppression file can be specified using CORAL_TESTSUITE_VALGRIND_SUPP. Logs are stored in logs/qmtest/valgrind and committed to CVS.
- Fixes in CORAL_SERVER (following crashes in ATLAS HLT, see bug #98514)
- Fixes for server-side connection management in CoralServerProxy: implement proper cleanup and reset procedure when server connection goes away. More details in CoralServerProxy/doc/design.txt.
- Improvements in CORAL_SERVER tests. Add the option to run the coralServer through valgrind for tests. Add the option to run the HLT tests using an installed release for the CORAL/COOL/HLT client and the local build for coralServer/Proxy (needed for LCG64 local builds because ATLAS HLT only supports LCG61 now).
- Patches for the upcoming API changes motivated by Coverity scans (protected by #ifdef CORAL240CO):
- Add protections for null wrapped objects in IHandle (bug #95358). Add a unit test in CoralKernel for several related issues.
- Assigning a null object, via operator=(T*) with T*=0, will now zero the internal pointer and possibly delete the wrapped object (previously this had no effect and it was necessary to assign a null IHandle<T>).
- Any attempt to construct/assign a IHandle from a pointer of a non RefCounted object will throw (previously it had silently no effect).
- Although the old and new algorithms both guarantee that m_object is either null or a RefCounted*, dynamic casts to RefCounted* are now explicitly checked to formally fix the Coverity analyzer scans.
- If the wrapped m_object is null, all dereference operators will throw (previously they would cause a segmentation fault).
- Protect against self-assignment in Date (fix Coverity bug #95355).
- Add missing copy ctor and assignment operator for the Service class (fix Coverity bug #95359).
- Protect against self-assignment in AttributeList, AttributeSpecification and AttributeListSpecification (fix Coverity bug #95362).
- Patches for the upcoming API changes (protected by #ifdef CORAL240AL):
- Add AttributeList::exists method to check if an attribute with a given name already exists (task #20089).
- Fix issues found by the Coverity static code analyzer in the core CORAL packages (task #20075) and in the CORAL_SERVER packages (bug #95365). Together with the API changes, these fix ALL issues found by Coverity in CORAL.
- Add a test for a segmentation fault in IHandle (see bug #95358).
- Add protections against negative sizes in Blobs and rewrite the implementation of the assignment operator (bug #95349). Add a unit test. An API change to change the Blob size from long to unsigned long was also considered but eventually discarded (see bug #95352).
- Replace rand() by boost random (bug #95713). Add a CoralBase/boost_thread_headers.h header to avoid boost warnings.
- Drop the unused feature allowing users to declare the factories for their custom plugins in a "plugins.coral" file (bug #95491). Remove all dead code associated to this feature. From now on only the factories hardcoded in the PluginManager.cpp file are going to be supported in CORAL.
- Add workaround for Coverity UNREACHABLE (bug #95671 on sr #101004). The workaround will silence Coverity but the functional bug is pending (SQLITE_FILE_PATH is a single path rather than a list of paths)!
- Fix possible memory leaks in OracleAccess (bug #95667) and PyCoral (bug #95668).
- Drop support for CORAL_MYSQL_CLOB_PREFIX_LEN in MySQLAccess (bug #95678).
- Change MySQLAccess::Statement::execute signature to return void instead of bool (bug #95676). Check return codes in SQLiteAccess (bug #95674).
- Add private copy ctor and assignment operator when missing (e.g. bug #95357). Protect against self-assignment.
- Replace sprintf by snprintf to protect against buffer overflows.
- Fix other minor issues in ConnectionService, CoralBase, CoralKernel, FrontierAccess, MySQLAccess, OracleAccess, SQLiteAccess, RelationalAccess, XMLLookupService, PyCoral, Tests and in all CORAL_SERVER packages.
- Postpone other fixes required in CoralBase API and a few fixes for real (but minor) functional bugs.
- Port to c++11 on gcc4.7:
- Clean up the use of auto_ptr in MonitoringEvent (bug #98081): add a Payload::clone method to copy the auto_ptr.
- Remove or replace std::auto_ptr to conform to c++11 (bug #98085). Remove SessRO and SessRW in CoralCppUnitDBTest (bug #98321). Temporarely disable c++11 deprecation warnings in several packages: publicly for CORAL_SERVER in CoralServerBase; privately in OracleAccess, MySQLAccess, FrontierAccess, SQLiteAccess, Tests and CoralAuthentication (workaround for bug #98085).
- Port to Boost 1.50:
- Get rid of boost::TIME_UTC from all sleep, timed_wait and timed_lock use cases; use relative times instead of absolute times (bug #95999). Use this simpler implementation also for Boost < 1.50.
- Use only one sleep implementation in CORAL (task #17497). Remove CoralCommon/Sleep.h (coral::sys::sleep) and keep only CoralCommon/Utilities.h (coral::sleepSeconds). Reimplement sleep using Boost chrono for Boost >= 1.50.
- Other fixes in implementation and tests:
- Remove connectionService() method and IHandle dependencies in FrontierAccess (bug #95898).
- Fix PyCoral build warnings after the upgrade to Python 2.7 (SPI-209 aka bug #73166).
- Move old CoralBase tests AtLiSpecFunctionality, AtLiFunctionality and AttributeReadWrite into a new CppUnit-based test CoralBaseTest.
- Define coral.message_Level_Verbose in PyCoral (bug #96544).
- Add a test for Frontier bug #96434. Improve debug/verbose statement printouts in OracleAccess and FrontierAccess (debug bug #96434).
- Adapt FrontierAccess to a new timestamp format in Frontier (bug #98345). Add workaround for temporary lack of millisecond support (bug #98962). Improve tests for Timestamp retrieval bug #98345 and bug #98962.
- In OracleAccess, postpone resetting SessionProperties to the very end of Session dtor. This is probably not a bug, but it may help analysing bug #98514.
- Minor improvements in Tests/Integration_InvalidReferences printout.
- Other fixes in config:
- Add support for the new cvmfs external path (in LCGCMT >= 64) in the CMT_env scripts. Keep support for the old path too (in LCGCMT < 64). In practice, both paths are concatenated in CMTPROJECTPATH.
- Add template of an OS-based customization of the CMT_env scripts (e.g. to add CMTEXTRATAGS for all slc5 nodes). This is a possible alternative to the HOSTNAME based workaround for bug #93111, enabled only for lxbrg2601.
- Adapt private CMTUSERCONTEXT for user avalassi to latest LCG_Settings and update the private hacks for gccmax builds.
- COOL 2.8.15
- Clean up the API extensions for the upcoming COOL 2.9.0.
- Add preprocessor symbols COOL_VERSIONINFO_RELEASE_MAJOR/MINOR/PATCH as in CORAL.
- Separate API changes into three categories protected by #ifdef COOL290CO (Coverity related fixes, bug #95363 and bug #95823), COOL290EX (fixes in inlined Exception implementation, bug #68061) and COOL290VP (vector payload extensions, task #10335).
- Patches for the upcoming API changes motivated by Coverity scans (protected by #ifdef COOL290CO):
- Add private copy ctor and assignment operator to the Application class (fix Coverity bug #95363).
- Initialise all data members in the ChannelSelection ctor (fix Coverity bug #95363).
- IRecord assignment operator should be private (bug #95823). Assignment operator should be private also for all abstract interfaces in the COOL API (see bug #95823). Default implementation of copy ctor and standard ctor should be kept and should remain public or protected.
- Fix other issues found by the Coverity static code analyzer (task #20073). Together with the API changes, these fix ALL issues found by Coverity in COOL.
- Drop CoolMiniClient and VerificationClient (bug #95364). All relevant classes are no longer built as of COOL 2.8.15.
- Drop support for the COOL TimingReport (task #31638). All relevant classes are no longer built as of COOL 2.8.15.
- Simplify RelationalObject by removing the m_payload reference (bug #95774).
- Add missing break in an ACE switch statement (bug #95773).
- Fix order of arguments in memset calls (real bug although with no effect).
- Add private copy ctor and assignment operator when missing. Protect against self-assignment.
- Replace sprintf by snprintf to protect against buffer overflows.
- Fix other minor issues in CoolKernel and RelationalCool tests.
- Port to Boost 1.50:
- Get rid of boost::TIME_UTC from the implementation of sleep. Reimplement sleep using Boost chrono for Boost >= 1.50 (bug #96072) and using ::sleep for Boost <= 1.50 as in CORAL.
- Link RelationalCool libraries and binaries against boost_system explicitly on mac (workaround for bug #96081 with Boost 1.50).
- Port to c++11 on gcc4.7:
- Disable c++0x/c++11 in the compilation of the PyCool dictionaries on the gcc4.7 build of ROOT with c++0x/c++11 (workaround for ROOT bug #97948 aka bug #98083). Use CMT target-c11 so that this applies to all gcc47 builds and not only to gccmax (bug #98684).
- Remove workaround for genreflex on gcc4.7 (bug #94232): remove -D__STRICT_ANSI__ from PyCool headers. This is now fixed in LCGCMT.
- Temporarely disable c++11 deprecation warnings, privately in the RelationalCool package only (workaround for bug #98086).
- Fixes in config:
- Add support for the new cvmfs external path (in LCGCMT >= 64) in the CMT_env scripts. Keep support for the old path too (in LCGCMT < 64). In practice, both paths are concatenated in CMTPROJECTPATH.
- Add workaround for bug #93111 in the CMT_env scripts as in CORAL 2.3.23: set CMTEXTRATAGS for lxbrg2601 (the CoralServer host for the nightlies).
- Add template of an OS-based customization of the CMT_env scripts (e.g. to add CMTEXTRATAGS for all slc5 nodes). This is a possible alternative to the HOSTNAME based workaround for bug #93111, enabled only for lxbrg2601.
- Private hack for user valassi (for Coverity scans): use the opt versions of CORAL and ROOT from cvmfs in dbg builds.
- Adapt private CMTUSERCONTEXT for user avalassi to latest LCG_Settings and update the private hacks for gccmax builds.
- Improvements in valgrind configuration for COOL (task #12670).
- Copy CORAL tools to COOL (keep a copy in sync).
- Instrument the COOL qmtest suite to optionally use valgrind. If CORAL_TESTSUITE_VALGRIND is set then 'qmtest run' will pass the test through valgrind; this is set in the execQmtest.sh script if '-valgrind' is given as first argument. An alternative suppression file can be specified using CORAL_TESTSUITE_VALGRIND_SUPP. Logs are stored in logs/qmtest/valgrind and committed to CVS.
- Improve valgrind suppression file by adding ROOT suppressions. These are very broad because they are meant to remove all issues deep inside ROOT in the PyCool tests, while keeping issues in the CORAL and COOL specific C++ code. Note that ROOT suppressions appear to be used also in COOL C++ tests: this is probably because the ROOT signal handler is used (LD_PRELOAD Cint and Core).
- Externals
- LCGCMT_64b
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- See the changes in LCG_Configuration since LCGCMT_64a.
- Upgrade to oracle 11.2.0.3.0 (from 11.2.0.1.0p3). See bug #92326. The new client libraries include important security fixes for the Oracle vulnerability CVE-2012-3137 affecting the Oracle logon protocol (see http://cern.ch/go/7XlV and http://cern.ch/go/7Kgf for press reports). The new sqlnet.ora configuration file includes client-side support for Kerberos authentication in Oracle.
- Upgrade xrootd and fastjet. Add new package tbb.
- Fix for genreflex on gcc4.7 (bug #94232) in LCG_Interfaces/Reflex: add -D__STRICT_ANSI__.
- Add the c++11 flag to the cppflags macro (SPI-224) in LCG_Policy to ensure that CORAL and COOL are built correctly on gccmax.
- Remove the c++11 flag from CXXFLAGS in LCG_Settings to ensure that ROOT is built and tested correctly on gccmax (bug #98344).
- Fix link options for gcov platform (SPI-231) in LCG_Policy This is necessary after the upgrade from gcc 4.3.5 to gcc 4.3.6 in LCG_Settings.
- ROOT 5.34.03
- Platforms
- Twelve platforms (as in LCG64a): four slc5-gcc43 (32/64bit opt/dbg), two x86_64-slc5-gcc46 (opt/dbg), two x86_64-slc5-icc11 (opt/dbg), two x86_64-slc6-gcc46 (opt/dbg), two x86_64-mac106-gcc42 (opt/dbg).
LCGCMT 64a (2012.09.12)
- Requested by ATLAS
- Changes in external package versions. Upgrades in frontier_client, tcmalloc, valgrind. Drop zlib.
- No other upgrade or rebuild.
- CORAL 2.3.23
- Move to LCGCMT_64a the release prepared for LCGCMT_63 (and then used also for LCGCMT_64), without rebuilding.
- Warnings: (1) the CMT_env scripts have not been ported to the new release path on cvmfs used in LCG64a; (2) project.cmt and the setup scripts for the installed release on AFS/cvmfs are still pointing to LCG63 anyway.
- COOL 2.8.14
- Move to LCGCMT_64a the release prepared for LCGCMT_63 (and then used also for LCGCMT_64), without rebuilding.
- Warnings: (1) the CMT_env scripts have not been ported to the new release path on cvmfs used in LCG64a; (2) project.cmt and the setup scripts for the installed release on AFS/cvmfs are still pointing to LCG63 anyway.
- Externals
- LCGCMT_64a
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- See the changes in LCG_Configuration since LCGCMT_64.
- Drop the dependency on an external version of zlib (1.2.3p1). Use the system-provided version of zlib (e.g. 1.2.3-4 on slc5). Note that the 'p1' version of zlib had been introduced in 2009 to address issues related to sysv hashes on SuSE (bug #59705). See also bug #65398.
- Upgrade to frontier_client 2.8.5p1 (from 2.8.5), rebuilt using the system version of zlib.
- Upgrade to valgrind 3.7.0p1 (from 3.6.0). The 'p1' version addresses issues in VG_N_SEGMENTS (bug #96121).
- Upgrade to tcmalloc 1.7p3 (from 1.7p1).
- Platforms
- Twelve platforms (as in LCG63 and LCG64): four slc5-gcc43 (32/64bit opt/dbg), two x86_64-slc5-gcc46 (opt/dbg), two x86_64-slc5-icc11 (opt/dbg), two x86_64-slc6-gcc46 (opt/dbg), two x86_64-mac106-gcc42 (opt/dbg).
LCGCMT 64 (2012.06.19)
- Requested by LHCb and SPI
- Move to the new directory structure defined in LCG_Settings
- Define the externals and release directories as a path relative to LCGCMT instead of as absolute paths on AFS (to ease the migration to cvmfs)
- Take releases from app/releases (instead of externals) also on cvmfs
- Remove the need for the LOCAL tag for cvmfs installations
- Upgrade Boost to 1.48.0p1 (from 1.48.0) on slc6 to fix unicode support issues.
- No other upgrade or rebuild.
- CORAL 2.3.23
- Move to LCGCMT_64 the release prepared for LCGCMT_63, without rebuilding.
- Warnings: (1) the CMT_env scripts have not been ported to the new release path on cvmfs used in LCG64; (2) project.cmt and the setup scripts for the installed release on AFS/cvmfs are still pointing to LCG63 anyway.
- Clean up the COOL CVS structure (task #30413) to use modules more similar to those in CORAL and avoid full checkouts on CVS updates. A change in LCGCMT/LCGCMT_Builders/COOL is required (see also SPI-202). Also remove obsolete files in cool/config from all release and nightly tags.
- COOL 2.8.14
- Move to LCGCMT_64 the release prepared for LCGCMT_63, without rebuilding.
- Warnings: (1) the CMT_env scripts have not been ported to the new release path on cvmfs used in LCG64; (2) project.cmt and the setup scripts for the installed release on AFS/cvmfs are still pointing to LCG63 anyway.
- Externals
- LCGCMT_64
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- See the changes in LCG_Configuration since LCGCMT_63.
- Several changes in LCG_Settings. Remove the SITEROOT environment variable and the LCG_home macro. Define the externals and release directories (i.e the LCG_externals and LCG_releases macros) as paths relative to LCGCMT instead of as absolute paths on AFS (this is needed for cvmfs). Take releases from app/releases (instead of externals) also on cvmfs. Remove the need for the LOCAL tag for cvmfs installations.
- Add /build/nightlies/externals symlink to AFS on all build nodes (SPI-201). This is necessary after the changes in LCG_Settings described above.
- Fixes for Boost (SPI-196) and genreflex CXXflags (SPI-198) on g11max.
- Fixes for uuid (SPI-199) on all slc6 platforms.
- Adapt LCG_Builders to the new CVS structure in COOL (task #30413).
- ROOT 5.34.00
- Upgrade Boost to 1.48.0p1 (from 1.48.0) on slc6 to fix unicode support issues (SPI-177).
- Platforms
- Twelve platforms (as in LCG63): four slc5-gcc43 (32/64bit opt/dbg), two x86_64-slc5-gcc46 (opt/dbg), two x86_64-slc5-icc11 (opt/dbg), two x86_64-slc6-gcc46 (opt/dbg), two x86_64-mac106-gcc42 (opt/dbg).
- All is ok on dev for CORAL and COOL also on g11max (gcc46 with c++0x).
LCGCMT 63 (2012.06.07)
- Requested by LHCb
- Upgrade to ROOT 5.34.00.
- Add SLC6 as a new supported platform.
- Several changes in CORAL and COOL:
- Major improvements in CORAL handling of network glitches.
- Major fixes in the CORAL cleanup of stale OCI sessions.
- Port the CORAL and COOL code base to gcc47.
- Drop the CORAL LFCReplicaSvc component.
- CORAL 2.3.23
- API extension in RelationalAccess (binary and code backward compatible).
- Add new coral::ConnectionLostException to signal network glitch issues.
- Major improvements in the CORAL handling of network glitches.
- The new mechanism for 'reconnections after network glitch' is now fully implemented in the OracleAccess plugin. This makes it possible to simply 'refresh' the OCI pointers inside the existing Session, Connection and Transaction instances. This limits network glitch handling to Oracle connections only, but this is the only really interesting case anyway. There is no longer any checking or handling of network glitches (for any generic backend) in the CoralCommon and ConnectionService packages.
- Remove all differences between the production (CORAL_2_3-patches) and the development (CORAL-preview) tags of all core CORAL packages: merge the two implementations of network glitch handling into a single production version that is now committed in the HEAD and close the CORAL_2_3 branch. This does not apply to the CORAL_SERVER code, where the production release is cut from the CORAL_2_3-ATLAS-branch, while the HEAD includes several changes in both monitoring and transport protocol, still under review.
- In SessionProperties, probe the physical connection (using OCIServerVersion in wasConnectionLost) whenever the OCI server and service context handles are about to be accessed. If the connection has been lost, different actions are possible depending on the transaction type and status.
- Throw a ConnectionLostException if the connection was lost and there was an active R/W or serializable R/O transaction. If no transaction was active or a non-serializable R/O transaction was active, restart the connection, the session and (if necessary) the transaction. The two methods ociServerHandle() and ociSvcCtxHandle() delegate checks for lost connections and actions for reconnection to two separate sets of methods.
- Note that the overhead from the OCIServerVersion calls was measured and found to be negligible (1M calls take only 120s, i.e. 0.12ms per call).
- Add a cache of the transaction status in SessionProperties (refreshed by Transaction itself after its state has changed - i.e. after completing a start, commit or rollback), to avoid various deadlocks issues.
- Reconnection is attempted every second, for a maximum of ten times. These parameters are presently hardcoded.
- Do not attempt to reconnect if the connection loss is identified during the cleanup phase (e.g. within Session or Transaction destructors).
- Add a Session::executeSimpleSQL method to execute simple SQL statements without passing through OracleStatement (which calls methods that may trigger mutex deadlocks during network glitches). Use this method inside Session during session initialization and termination.
- In Transaction, cleanly separate the setting/unsetting of m_ociTransHandle (which sets it as active/inactive) from the allocation/release of OCITrans and from the calling of OCITransStart/Commit/RollBack. This bypasses the isActive check when calling ociSvcCtxHandle(), fixing deadlocks in the network glitch test.
- Add SessionProperties::wasSessionLost() to distinguish it from ConnectionProperties::wasConnectionLost(). Each connection may be shared by several sessions and the book-keeping of their restart is kept separate. Add ConnectionProperties::nRestarted() to know how many times a connection was restarted and cache it in SessionProperties to know when a connection has been restarted but one associated session has not yet. In this approach each session is responsible to restart itself, after checking whether the associated connection has been restarted (in another approach, not used, the connection could invalidates and restarts all associated sessions).
- Fix network glitch handling for connections shared by several sessions (bug #94931). Do not disconnect a Connection (and invalidate all sessions on that shared connection) when a session is broken by a network glitch and is not scheduled for reconnection. Different types of sessions that should (RO) or should not (RW) be reconnected may coexist on the same shared connection.
- Implement connection retrial during reconnections (fix bug #94492). To achieve this, factorize out the common code of Connection::connect and ConnectionProperties::reconnect (including the OCIServerAttach call) to a separate method Connection::attachOciConnection, called by both methods.
- Fix possible memory leaks during reconnections. Make sure that the invalid OCI handles associated to the broken session and connection are properly released (using the "garbage bin" mechanism described below).
- Make sure that a session that is being created on a newly reconnected connection is not marked as stale (fix bug #94114).
- Remove mutexes from Session getters isUserSessionActive and nominalSchema, to avoid possible deadlocks in the new handling of network glitches. This change however should be reviewed as it may introduce new issues in multi-threading mode (bug #94967).
- Improve debug printouts and increase verbosity when connections are lost.
- Note that several old incident reports have also been closed as the new reimplementation of the handling of network glitches is assumed to fix them, even if not all of these have been explicitly tested (this includes bug #58570, bug #56061, bug #73688, bug #65597, task #12143). Other issues instead are still pending and will be worked on in the future (such as bug #56105 for CLOBs).
- Major fixes for OracleAccess crashes and hangs due to the use of deleted OCISvcCtx and OCISession handles in OCI statements (bug #94385).
- Defer the deletion of OCISvcCtx and OCISession handles (via OCIHandleFree calls) from Session::endUserSession to the SessionProperties destructor: whenever an OCISvcCtx or OCISession handle is invalidated, this is not deleted immediately, but is kept by SessionProperties in a "garbage bin" that is only emptied in the destructor. This prevents OracleStatement instances in OracleAccess from retrieving OCISvcCtx or OCISession handles that may be deleted while the statements are trying to use it. The lifetime of the SessionProperties instance itself is guaranteed to be longer than that of statements by the shared pointer mechanism previously implemented to solve other types of crashes in multi-threaded mode (bug #73334 and bug #73384). As part of this patch, move ownership of the OCISession handle from Session to SessionProperties.
- Before deleting the OCISession (via OCIHandleFree), the SessionProperties destructor first unsets the OCISession reference in the OCISvcCtx. This is not strictly needed in this implementation, but contributes to achieving a cleaner and more consistent termination phase.
- Defer the deletion of OCIServer, OCIError and OCIEnv handles (via OCIHandleFree calls) from Connection::__disconnect to the ConnectionProperties destructor, via the same "garbage bin" mechanism. This is done for consistency, even if not needed to fix observed crashes.
- Remove the previous workaround for bug #83601 (avoid releasing an OCI statement if the OCISvcCtx has already been deleted). The above patch also represents a better fix for bug #83601, avoiding the memory leaks that were possible in the previous workaround. Remove the releaseOCIStmt method from SessionProperties as it is no longer needed.
- Improve debug information in the ObjectConsistency test (for bug #94385).
- This patch is also likely to provide a fix for an issue reported by ATLAS (bug #93686), which could not be reproduced by any ad-hoc test.
- Port to gcc4.7 and other platform-specific issues.
- Add missing #include for gcc47 (bug #94230) in CORAL_SERVER.
- Remove c++0x option for gcc47 as the externals do not use it (bug #94374).
- Fix icc build warnings in OracleAccess.
- Drop support for the LFCReplicaSvc component (keep the code for the moment, but do not build it any longer). This is no longer neeed by LHCb as of LCGCMT_63.
- Other fixes and improvements in ConnectionService:
- Move uuid generation from SessionHandle and ConnectionHandle to a dedicated class UidGenerator.
- Use simple IDs by default instead of uuid's for sessions and connections (bug #94468), both internally and for printouts. These simple IDs are unique within each application execution and are enough for connection IDs as map keys in ConnectionMap; session IDs are only needed for printouts. Note that temporary SessionHandle's (those that are not associated to any connection at creation time) are assigned a special temporary session ID.
- Remove the previous mechanism to display simple IDs only if CORAL_CONNECTIONSVC_SHOWSIMPLEIDS was set (task #17135), which was bugged and could lead to mutex crashes in the cleanup phase.
- Other fixes and improvements in OracleAccess:
- Make sure that Cursor::currentRow() throws an exception if no row has been retrieved yet (bug #91028). Add a test (enabled by default only for Oracle and CoralServer, disabled for all other backends).
- Improve the error message that is printed out when OCIServerVersion fails: suggest to check the DB server character set (bug #94547). This OCI call was reported to fail at Gridka when using an unsupported character set.
- Disable cardinality feedback in the Oracle 11g optimizer as it may be one of the causes of the ORA-04031 errors seen in the nightlies (bug #94270).
- Disable dynamic sampling in the Oracle optimizer if the env variable CORAL_ORA_DISABLE_OPT_DYN_SAMP is set. This should reduce by a factor two the number of queries in the SGA memory shared pool, helping to avoid the occurrence of ORA-04031 errors in the nightlies (bug #94270).
- Other fixes in tests and configuration:
- Add valgrind to the CORAL test runtime. Add to Tests/cmt the valgrind suppression file used to debug bug #94385 and bug #83601 and bug #93686 (see also task #12670).
- Use unique table names across platforms in the OracleAccess DataDictionary test to avoid ORA-0054 errors (bug #94489).
- Delete the NetworkGlitch test in OracleAccess. This has been replaced long ago by the PyCoral_NetworkGlitch test.
- Print out the platform and nightly slot in each PyCoral test.
- Increase timeout from 5 to 15 minutes for network glitch test (bug #94518). Do the same for random cycler test that always fails on macos (bug #94592).
- Fix intermittent crashes in OracleAccess MultipleSessions test and Integration_MultipleThreading test (bug #94505): make sure tests fails (without crashing) if a thread has errors.
- Add workaround for bug #93111 in the CMT_env scripts: set CMTEXTRATAGS for lxbrg2601 (the CoralServer host for the nightlies). After the latest O/S upgrade the CoralServer was failing to start.
- Set the env variable CORAL_ORA_DISABLE_OPT_DYN_SAMP in qmtest to disable dynamic sampling in the Oracle optimizer. This should reduce by a factor two the number of queries in the SGA memory shared pool, helping to avoid the occurrence of ORA-04031 errors (bug #94270).
- Fixes and improvements in the network glitch test in Tests and OracleAccess:
- Reenable all network glitch tests in the nightlies, as they presently all succeed after the fixes in network glitch handling described above.
- Modify all tests to expect a ConnectionLostException to be thrown when connections are lost (instead of expecting an ORA-03113 error). Note that the tests for cursor.next() do fail with ORA-03113 instead: the CORAL ociSvcCtx() is not called, instead the OCI cursor internally uses a reference to a stale OCISVcCtx handle. The latest CORAL patches also ensure that this does not crash (the OCISvcCtx handle still exists).
- Add a test for connection retrial during reconnections (bug #94492).
- Make sure sessions are cleanly terminated for failing tests.
- Fix a bug in catching an exception ("str(error)" results in qmtest ERROR).
- Fix bug #94103 in the test for bug #58522 about ORA-24327 issues. This involves two changes: a fix in the connection service configuration in the network glitch test; and the implementation of a hook in SessionProperties (to use the stale OCIServer handle for the connection in SessionProperties) and its use (by setting the CORAL_ORA_TEST_ORA24327_KEEPSTALECONN env variable, to trigger ORA-24327 and avoid a reconnection). Also increase ConnectionService and OracleAccess verbosity to better analyse bug #94103.
- Test that transaction is still of R/O type when it is restarted after a glitch (which happens only if it was non-serializable R/O before).
- Rerun the two-session test 136a both with and without connection sharing. The test also checks what happens when there are more than one glitches. Use the Info verbosity to check connections ad sessions visually. Also add a third RW session to this test (the RW session must not be reconnected and is immediately terminated, while the other two sessions survive all network glitches) ; this was used to identify bug #94931.
- COOL 2.8.14
- Port to gcc4.7 (bug #94232)
- Add -D__STRICT_ANSI__ when processing the PyCool headers through genreflex, to avoid error '__int128' was not declared in this scope' (bug #94232).
- The upgrade of gccxml to 0.9.0_20120309 was also necessary (SPI-190).
- Fixes in tests and configuration:
- Set the env variable CORAL_ORA_DISABLE_OPT_DYN_SAMP in qmtest to disable dynamic sampling in the Oracle optimizer. This should reduce by a factor two the number of queries in the SGA memory shared pool, helping to avoid the occurrence of ORA-04031 errors (bug #94270).
- Fix intermittent failures of test_insertionTimeOfLastObjectInTag in RelationalObjectMgrTest (bug #93118) by adding sleep(1).
- Externals
- Platforms
- This is the first release supported on SLC6.
- Twelve platforms (they were ten in LCG62b): four slc5-gcc43 (32/64bit opt/dbg), two slc5-gcc46 (64bit opt/dbg), two slc5-icc11 (64bit opt/dbg), two x86_64-mac106-gcc42 (opt/dbg), and the two new slc6-gcc46 (64bit opt/dbg).
CORAL 2.3.23 pre-release candidates (2012.06.07)
- Requested by the CORAL team
- The pre-release tags CORAL_2_3_23-pre1 to CORAL_2_3_23-pre5 describe different steps in the progressive fixes for the network glitch issues.
- Show details for pre-release tags.
LCGCMT 61e (2012.03.29)
- Requested by ATLAS
- Rebuild of LCG61d with the ROOT 5.30.05 previously used for LCG61c.
- ROOT 5.30.06 in LCG61d is not binary compatible to ROOT 5.30.05 in LCG61c, breaking binary compatibility between ATLAS offline and online code.
- Include the POOL and uuid upgrades, as well as the CORAL and COOL fixes for Oracle 11g, already included in LCG61d.
- Upgrade to frontier_client 2.8.5 as in LCG62a (still missing in LCG61d).
- CORAL 2.3.20c
- Rebuild of CORAL 2.3.20b code base (most recent release in the LCG61 series).
- COOL 2.8.12c
- Rebuild of COOL 2.8.12b code base (most recent release in the LCG61 series).
- POOL 2.9.20a
- Rebuild of POOL 2.9.20 code base (most recent release in the LCG61 series).
- Externals
- LCGCMT_61e
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- See the changes in LCG_Configuration since LCGCMT_61d.
- Fix LCG_Platform bug #93111 affecting SLC5.8 (it does not affect lxplus that is still on SLC5.7). This had already been fixed in LCGCMT_62b but initially had not been backported.
- ROOT 5.30.05
- See the ROOT 5.30 patches release notes.
- Downgrade back from ROOT 5.30.06, which is not binary compatible to ROOT 5.30.05, for instance due to changes in the TGeoScaledShape.h header.
- frontier_client 2.8.5.
- See release notes in http://frontier.cern.ch/dist/clientreleasenotes.txt.
- Fix a segmentation fault for queries that require a lot of memory.
- Fix a bug that may lead to mixing of responses to different processes.
- Platforms
- Six platforms (as in LCG61d): four slc5-gcc43 (32/64bit opt/dbg) and two x86_64-mac106-gcc42 (opt/dbg).
LCGCMT 62b (2012.03.28)
- Requested by ATLAS and LHCb
- Upgrade to ROOT 5.32.02 (including the fix for PyCintex bug #92491).
- Important fixes and improvements in CORAL and COOL.
- Complete the port of CORAL and COOL to clang and gcc46 on SLC6 (for clang: fix problems in dynamic loading of plugins; redeclare IPropertyManager as class instead of struct).
- Complete the port of CORAL and COOL tests to Oracle 11g servers (avoid ORA-01466 errors in the nightly tests).
- Fix crashes in MySQLAccess due to invalid references to SessionProperties in single-threaded applications.
- CORAL_2_3_22
- Improvements in the dynamic loading of plugins, motivated by the port to clang30 on SLC6:
- In the new implementation of the plugin manager, locate in the shared library a function that is then used to get a pointer to the component factory. This is used always (CORAL 2.3.x and 2.4.0) for clang on linux (fixing bug #92167); on other linux platforms only as of CORAL 2.4.0; never for Windows.
- For Mac, adapt this new implementation to avoid an ISO C++ warning when manipulating the return argument of dlsym (bug #92345).
- In the old implementation of the plugin manager, as previously, locate in the shared library a static pointer to the component factory. This is used always (CORAL 2.3.x and 2.4.0) for Windows; never for clang on linux; on other linux platforms only up to CORAL 2.3.x.
- Improve the old implementation of plugins so that the "extern C" section explicitly contains a _pointer_ to the factory instead of a _C++ reference_ to the factory (which the previous implementation implicitly assumed to be handled as a pointer).
- Also add a protection in this old implementation, against a possible segmentation fault when dynamic loading of shared libraries fail (fix bug #91133 for clang, related to bug #92167).
- Move the definition of CORAL_PLUGIN2_MODULE from ConnectionService to CoralKernel.
- Use XMLAuthenticationService instead of SQLiteAccess in the plugin manager test.
- Major cleanup of CORAL240 extensions.
- Enable for clang, and within #ifdef CORAL240PR for all other previously supported platforms, the API change in CoralKernel to redeclare IPropertyManager as class instead of struct. This fixes the 'struct was first seen as class' build warning on vc9 (bug #63198) and clang (bug #79151). The API was internally inconsistent: Context.h forward declares IPropertyManager as a class.
- Remove all patches relevant to CORAL change notifications (task #14700). The present implementation is very incomplete and would only lead to confusion if this was released in CORAL 2.4.0. This removes all code fragments protected by an '#ifdef CORAL240CN' clause.
- Remove all patches relevant to CORAL sequences (bug #61558). The present implementation is very incomplete and would only lead to confusion if this was released in CORAL 2.4.0. This removes all code fragments protected by an '#ifdef CORAL240SQ' clause. This also triggered a cleanup in POOL, allowing the removal of the CoralCommon/AuthenticationCredentials.h header (task #15556).
- Remove all patches relevant to the "on delete cascade" option for FKs (sr #115178). The present implementation is very incomplete and would only lead to confusion if this was released in CORAL 2.4.0. This removes all code fragments protected by an '#ifdef CORAL240DC' clause.
- Cosmetic change: make sure that VersionInfo.h is the first included header to enable or disable the CORAL240 API extensions (bug #89707).
- Workaround for bug #87935 to avoid ORA-01466 in CORAL and COOL tests against Oracle 11g servers: sleep for 1 second before starting an OCI read-only transaction if the environment variable CORAL_TESTSUITE_SLEEPFOR01466 is set. This environment variable is set in both the CORAL and COOL qmtest drivers. Note that this patch has also been backported to CORAL 2.3.20b in LCG61d.
- The motivation for this workaround is that ORA-01466 errors may occur when querying (inside a read-only transaction) a table that has just been created. This problem is a known side-effect of starting OCI read-only transactions in CORAL and has been observed also on 10g, but seems to appear more frequently on 11g.
- To avoid too large delays in the tests, the workaround has been improved to sleep 1s only if necessary, i.e. if any table in the nominal schema has undergone DDL modifications within the last 2 seconds. This is checked with a dedicated data dictionary query (which is only executed by the nightly DB accounts, which have enough privileges to execute a more optimized query that does not cause more overhead than advantages).
- Note also that repeating any queries that failed with ORA-01446 is a strategy that would not work if the queries are repeated in the same read-only transaction: it is the start of the transaction that must be delayed by one second, not the start of each individual query.
- The workaround has been further improved to sleep 1s only if the recent DDL modifications in the nominal schema involved tables whose names start with a well defined prefix, contained in the additional environment variable CORAL_TESTSUITE_SLEEPFOR01466_PREFIX. This variable is set for CORAL inside the C++ and Python base tests; for COOL inside the C++ base test and in the qmtest driver. This ensures that the nightly tests on different platforms and slots do not interfere with each other, as they involve table with different name prefixes.
- Finally, to avoid interferences from this workaround in the network glitch test (see bug #92391), data dictionary queries are also skipped if CORAL_TESTSUITE_SLEEPFOR01466 equals "ALWAYS". This value is set in the network glitch test.
- Major cleanup of MySQLAccess. The HEAD of this package, previously unreleased, has been patched and is now the release version code base.
- Fix single-threaded crashes in MySQLAccess due to invalid references to SessionProperties (bug #80023). Enable the corresponding test Integration_InvalidReferences (for bug #73834 in OracleAccess), for MySQLAccess (bug #80023) and also SQLiteAccess (bug #80022).
- Cache the domain service name in SessionProperties and in Connection (possible bug #71210). Use it in all external classes that require it.
- Fix bug #75094 (Cursor::next returns false if transaction is not active while it should throw) in MySQLAccess. Enable the corresponding test PyCoralBasic for MySQLAccess.
- Fix and enable the test Integration_InvalidReferences for bug #79983 for all of OracleAccess, MySQLAccess and SQLiteAccess. For MySQLAccess this passes only thanks to the fixes above for bug #80023 and bug #75094.
- Cosmetic changes. Replace m_props by m_properties.
- Improvements in the network glitch (PyCoral_NetworkGlitch) test. Note that this patch has also been backported to CORAL 2.3.20b in LCG61d.
- Move the network glitch test from the 10g to the 11g Oracle server (bug #92316). Connect the tunnel to test22-v because service test2_nightly uses the single instance test22. Do not create the tunnel to test22-s because the listener creates the socket on test22-v instead! Print out the tunnel hosts and ports for debug purposes.
- Add more tests in the PyCoral_NetworkGlitch test and fix all expected results. Presently 17 real issues are detected (failures=11, errors=6).
- Create the test tables if they do not exist yet (bug #92376) in the PyCoral_NetworkGlitch test. Reduce verbosity of the test.
- Other fixes in OracleAccess:
- Drop the view from the database (execute the SQL command DROP VIEW) even if the view is invalid (bug #92418). Previously this was not done because trying to retrieve the view description returns ORA-24372. A new InvalidViewException has been introduced (only in OracleAccess).
- Other fixes in config:
- Workaround for obsolete tnsnames.ora in the LHCb cvmfs (bug #92294): use TNS_ADMIN from AFS if tag LOCAL is defined.
- Allow per-platform configuration of afs and cvmfs in CMT_env scripts.
- Other fixes and improvements in Tests:
- Review the Integration_Basic test (see also bug #78984). Drop the 'query2' test for bug #78574, since replaced by a test in MiscellaneousBugs. Move the 'query3' test for the new feature requested in sr #119311 to the MiscellaneousBugs test too (this test is in any case disabled as that feature is not yet implemented).
- Enable SQLite and CoralServer tests in the MiscellaneousBugs test for bug #78574, fixed there (but not yet for Frontier or MySQL).
- Update the list of supported platforms in the C++ and PyCoral tests.
- Remove the obsolete Integration_NetworkFailure test. This was crashing (bug #72381) and has been replaced by the PyCoral_NetworkGlitch test. Remove also the stone utility, replaced by ssh tunnels in PyCoral_NetworkGlitch.
- Remove the obsolete Integration_StressTest test. This test was taking a very long time on all platforms for no clear benefit (bug #76499), and was failing on Frontier (bug #76503). It had no clear motivation to be in a functional test suite.
- Remove the obsolete Integration_PreFetching test. This test was hanging on Oracle and SQLite, and failing on Frontier (bug #76502). Its motivation was not clear so it was not replaced by another test.
- Remove the obsolete Integration_UserTests test. This test was using the ATLAS PVSS tables and was therefore disabled in the nightlies where it would fail with "Connection on oracle://intr/atlas_pvss_reader cannot be established" (bug #76498). A test for the underlying bug #68313 (segmentation fault in CORAL accessing synonyms in PVSS data) may be added later on using the nightly schema (task #27165).
- Remove the obsolete TestEnv/TestingConfig.h header (task #18175) after removing most of the tests that were using it, and modifying the others.
- Add a defineOutput call in Integration_RandomCycler test.
- COOL_2_8_13
- Add the Utilities/PerformanceReport package.
- This contains the scripts to generate a detailed report of COOL query performance against Oracle servers (see https://twiki.cern.ch/twiki/bin/view/Persistency/CoolPerformanceTests).
- Port to clang30 on SLC6:
- Link the gcc4.6 version of stdc++ when building utilities with clang30 using CMT (bug #91133). Move all CMT patterns for tests and utilities to CoolKernel and use them whenever possible.
- Resynchronise CMT setup scripts with CORAL (remove obsolete llvm setup, as the setup for clang is now done automatically by LCGCMT).
- Workaround for LCGCMT bug #91315: use CORAL and ROOT builds on clang.
- Port to gcc46 on SLC6:
- Disable schema evolution tests on SLC6 (bug #92111).
- Workaround PyCool handling of '\0' payload strings by changing the regression tests (bug #92115).
- Workarounds for bug #87935 in COOL tests when moving to Oracle 11g servers. Note that this patch has also been backported to COOL 2.8.12b in LCG61d.
- See more details in the CORAL release notes.
- Internal cleanup of class structure (related to ORA-01466 issues):
- RalSequenceMgr now has a reference to RalSessionMgr, not a shared pointer. The lifetime of RalSequenceMgr is controlled by its owner RalQueryMgr, which first deletes it, then releases the RalSessionMgr shared pointer.
- Change the bulk update and bulk insert methods of RelationalQueryMgr from non-const to const, so that all relevant methods are now const.
- Simplify RelationalQueryMgr ownership in RelationalObjectTable (task #25623). There used to be a constructor flag to choose whether RelationalObjectTable owns the RelationalQueryMgr non-const pointer passed as an argument: this flag has now been removed and RelationalQueryMgr is now passed as a const reference.
- Also change the RelationalQueryMgr reference in RelationalSchemaMgr and RelationalObjectMgr from non-const to const.
- Add a new abstract base class ISessionMgr for RalSessionMgr. This is also part of the upcoming patch for task #6154 (expose CORAL sessions and transactions in the COOL API).
- Allow RalQueryMgr to be created from a RalSessionMgr reference (rather than a shared pointer). The clone method of RelationalQueryMgr can now be removed (see task #25634).
- Fixes in qmtest and coolDropDB (bug #91006): skip tests in qmtest if coolDropDB has failed. Note that this patch has also been backported to COOL 2.8.12b in LCG61d.
- Fix coolDropDB so that it returns an error code some tables cannot be dropped (e.g. ORA-00054 resource busy with NOWAIT).
- Fix qmtest so that it checks the return code from coolDropDB: if this has failed, qmtest dumps the errors and avoids running the tests.
- Other fixes in RelationalCool src:
- Improve the handling of 'many transactions in read-only session' mode (bug #90949). Remove a wrong warning when disconnecting in this mode. Also check getenv("COOL_READONLYSESSION_MANYTRANSACTIONS") only once and keep a flag to cleanly indicate the mode in the internal API.
- Other fixes in config and related tools.
- Improve the coolCppClean too to handle Python files (do not uncrustify them, only clean them using emacs: untabify first, then fix indent offsets to 4 characters). Clean up all Python files in PyCool, PyCoolUtilities and RelationalCool.
- Workaround for obsolete tnsnames.ora in the LHCb cvmfs (bug #92294): use TNS_ADMIN from AFS if tag LOCAL is defined.
- Hardcode the -DCOOL290 flag in a code branch rather than relying on the CMT requirements and the nightly slot environment (bug #92204).
- Allow per-platform configuration of afs and cvmfs in CMT_env scripts.
- Other fixes in RelationalCool tests:
- Rename RalObjectIteratorTest as RelationalObjectIteratorTest (change only the inconsistent class name: the file name had already been changed).
- Fix BLOB comparison in the RalDatabase_extendedSpec test (bug #91519).
- Externals
- LCGCMT_62b
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- See the changes in LCG_Configuration since LCGCMT_62a.
- Rebuild clang on slc6 using the native gcc4.4 compiler (see bug #91134).
- Fix gccxml configuration for clang, to build PyCool correctly (bug #91134).
- Fix the LCG_platform macro for clang, so that the native clang builds of CORAL and ROOT are used for COOL instead of the gcc46 builds (bug #91315).
- Fix LCG_Platform bug #93111 affecting SLC5.8 (it does not affect lxplus that is still on SLC5.7).
- Upgrade uuid to 1.42 (from 1.38p1).
- LCG62b is the last supported release in the LCG62 series. A few fixes specific to the maintenance of this branch have been included after LCG62b (e.g. SPI-197, Boost upgrade to 1.48.0p1 on gcc 4.7 to fix thread support issues), but support for the LCG62 series was eventually discontinued in June 2012.
- ROOT 5.32.02
- Platforms
- Ten platforms (they were nine in LCG62a): four slc5-gcc43 (32/64bit opt/dbg), two slc5-gcc46 (64bit opt/dbg), two slc5-icc11 (64bit opt/dbg) and two x86_64-mac106-gcc42 (opt/dbg).
- Added x86_64-mac106-gcc42-dbg with respect to LCG62a.
LCGCMT 61d (2012.03.19)
- Requested by ATLAS
- Urgent bug fixes in POOL for int64 handling in the collection packages and changes in GUID handling.
- Upgrade uuid to 1.42 (from 1.38p1).
- Upgrade to ROOT 5.30.06. Note this is not binary compatible to the previous ROOT.
- Backport to LCG61d the CORAL and COOL code and configuration workarounds for avoiding ORA-01466 errors against Oracle 11g test servers.
- CORAL 2.3.20b
- Rebuild of CORAL 2.3.20a code base (most recent release in the LCG61 series), with a few code base and configuration changes which have become necessary after the decommissionning of the old Oracle 10g test server.
- Backport to the LCG61 series (from the upcoming CORAL_2_3_22 in LCG62b) the workaround for bug #87935 to avoid ORA-01466 in CORAL and COOL tests against Oracle 11g servers: sleep for 1 second before starting an OCI read-only transaction if the environment variable CORAL_TESTSUITE_SLEEPFOR01466 is set. This environment variable is set in both the CORAL and COOL qmtest drivers.
- The motivation for this workaround is that ORA-01466 errors may occur when querying (inside a read-only transaction) a table that has just been created. This problem is a known side-effect of starting OCI read-only transactions in CORAL and has been observed also on 10g, but seems to appear more frequently on 11g.
- To avoid too large delays in the tests, the workaround has been improved to sleep 1s only if necessary, i.e. if any table in the nominal schema has undergone DDL modifications within the last 2 seconds. This is checked with a dedicated data dictionary query (which is only executed by the nightly DB accounts, which have enough privileges to execute a more optimized query that does not cause more overhead than advantages).
- Note also that repeating any queries that failed with ORA-01446 is a strategy that would not work if the queries are repeated in the same read-only transaction: it is the start of the transaction that must be delayed by one second, not the start of each individual query.
- The workaround has been further improved to sleep 1s only if the recent DDL modifications in the nominal schema involved tables whose names start with a well defined prefix, contained in the additional environment variable CORAL_TESTSUITE_SLEEPFOR01466_PREFIX. This variable is set for CORAL inside the C++ and Python base tests; for COOL inside the C++ base test and in the qmtest driver. This ensures that the nightly tests on different platforms and slots do not interfere with each other, as they involve table with different name prefixes.
- Finally, to avoid interferences from this workaround in the network glitch test (see bug #92391), data dictionary queries are also skipped if CORAL_TESTSUITE_SLEEPFOR01466 equals "ALWAYS". This value is set in the network glitch test.
- Backport to the LCG61 series (from the upcoming CORAL_2_3_22 in LCG62b) several improvements in the network glitch (PyCoral_NetworkGlitch) test:
- Move the network glitch test from the 10g to the 11g Oracle server (bug #92316). Connect the tunnel to test22-v because service test2_nightly uses the single instance test22. Do not create the tunnel to test22-s because the listener creates the socket on test22-v instead! Print out the tunnel hosts and ports for debug purposes.
- Add more tests in the PyCoral_NetworkGlitch test and fix all expected results. Presently 17 real issues are detected (failures=11, errors=6).
- Create the test tables if they do not exist yet (bug #92376) in the PyCoral_NetworkGlitch test. Reduce verbosity of the test.
- COOL 2.8.12b
- Rebuild of COOL 2.8.12a code base (most recent release in the LCG61 series), with a few configuration changes which have become necessary after the decomissionning of the old Oracle 10g test server.
- Backport to the LCG61 series (from the upcoming COOL_2_8_13 in LCG62b) the workarounds for bug #87935 in COOL tests when moving to Oracle 11g servers.
- See more details in the CORAL release notes.
- Backport to the LCG61 series (from the upcoming COOL_2_8_13 in LCG62b) the fixes in qmtest and coolDropDB (bug #91006): prevent tests from being executed in qmtest if coolDropDB has failed.
- Fix coolDropDB so that it returns an error code some tables cannot be dropped (e.g. ORA-00054 resource busy with NOWAIT).
- Fix qmtest so that it checks the return code from coolDropDB: if this has failed, qmtest dumps the errors and avoids running the tests.
- POOL 2.9.20
- Change GUID in POOLCore from uuid_generate_time() to uuid_generate() to avoid duplicates. Note that this will now make it impossible to order POOL GUIDs by time (task #15617).
- Fixes for int64 handling in RootCollection: add APRTreeFormula class inheriting TTreeFormula.
- Fix in RootStorageSvc: add error detection in loadObject (related to ATLAS data corruption reported as bug #89304).
- Resynchronise CMT setup scripts with CORAL (remove obsolete llvm setup; allow per-platform configuration of afs and cvmfs).
- Adapt to changes in CORAL ISchema.h header and remove all dependency on CoralCommon/AuthenticationCredentials.h. This makes POOL no longer supported for CORAL versions older than 2.3.13.
- Externals
- LCGCMT_61d
- ROOT 5.30.06
- See the ROOT 5.30 patches release notes.
- Note that ROOT 5.30.06 is not binary compatible to the previous ROOT 5.30.05, for instance due to changes in the TGeoScaledShape.h header.
- Platforms
- Six platforms (they were four in LCG61c): four slc5-gcc43 (32/64bit opt/dbg) and two x86_64-mac106-gcc42 (opt/dbg). Added back the two mac platforms for this build.
CORAL 2.3.21 (2012.02.14)
- Requested by CMS
- New CORAL tag for release CMSSW 5 (initially 5.2, then it will be backported to 5.0 and 5.1).
- Attempt a fix for the ORA-25408 error reported by CMS (bug #87164).
- CORAL_2_3_21
- Attempt a fix for the ORA-25408 error reported by CMS (bug #87164): throw an exception if ORA-25408 is observed during a rollback.
- Fix memory leaks in OracleAccess:
- Fix memory leak: OracleStatement was not deleted if Query::execute fails (bug #90898).
- Fix eight more memory leaks for OracleStatement in the implementation of sequences (bug #90991 and bug #90996). Note that sequences will only be enabled in CORAL 2.4; because of these leaks and other issues (bug #90995), however, their implementation will have to be rewritten.
- Improve the algorithm of the SimpleExpressionParser to fix bug #91075 (and a few related issues, in the handling of reserved words like "SELECT" used as table names).
- Escape reserved words like "SELECT" when passed to parseExpression with no other character (e.g. when selecting a column of that name).
- Change the order of checks in decorateWord so that reserved words are escaped, even if uppercase, when they are guessed to be column or table names or aliases.
- As before, uppercase words are generally not escaped, both for simplicity and as a convention to allow the use of unrecognized reserved words (like the SYSTIMESTAMP WITH TIME ZONE expression).
- Note that SQL functions like SYSTIMESTAMP are not treated as reserved words because users should be able to use them as functions. To use them as functions, pass them in uppercase so that they will not be escaped. Their use as table names or columns is not supported in uppercase and strongly discouraged (though it may work, with no guarantee) in lowercase.
- See https://twiki.cern.ch/twiki/bin/view/Persistency/CoralExpressionParser for more details (in preparation).
- Port to clang30:
- Link the gcc4.6 version of stdc++ when building utilities with clang30 using CMT (bug #91133).-
- Remove obsolete setup scripts for llvm. The setup for clang is now done automatically by LCGCMT.
- Improve the CORAL tests:
- Move to a new test Integration_InvalidReferences all the tests (previously in Integration_MiscellaneousBugs) for crashes due to invalid session, schema or transaction references. Keep Integration_MiscellaneousBugs as a general purpose container for miscellaneous bugs.
- Add a simple test to debug ORA-01466 issues with COOL in 11g (bug #87935). This was added to the OracleAccess 'Dual' tests even if it does not use DUAL.
- Add several test for bug #91075 (with queries selecting columns whose names are rserved words).
- Changes in CORAL_SERVER test configuration. Port LCG60 and LCG61 to ATLAS 17.1.0 (with higher virtual memory, a new data file and a new trigger menu (bug #87171).
- Increase virtual memory requirements for the ATLAS HLT tests (from 1536000 to 2048000) for all ATLAS releases (even if this is strictly needed only for the port to the ATLAS 17.1.0 release).
- Define the appropriate data file and trigger menu for each ATLAS release. Let AtlasSetup choose the appropriate platform (32 or 64 bit) for each ATLAS release (current default is still 32 bit also for ATLAS 17.1.0).
- Move the python driver and data file manipulation from the ATLAS_CMT_env.sh to the allTests.sh script.
- Warning: the CORAL_SERVER HLT tests cannot be executed with LCG62 because no ATLAS release exists yet using the same Boost (bug #90431). A workaround for this issue (prepending the new Boost libraries) was attempted and works ok for direct Oracle connections, but not for tests using the CORAL_SERVER software (bug #90437).
LCGCMT 62a (2011.12.18)
- Requested by ATLAS
- Fix problem in install release procedure used by ATLAS.
- Upgrade to frontier_client 2.8.5.
- No other upgrade or rebuild.
- CORAL 2.3.20
- Move to LCGCMT_62a the release prepared for LCGCMT_62, without rebuilding.
- COOL 2.8.12
- Move to LCGCMT_62a the release prepared for LCGCMT_62, without rebuilding.
- Externals
- LCGCMT_62a
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- See the changes in LCG_Configuration since LCGCMT_62.
- The only changes with respect to LCGCMT_62 are the new frontier_client and the LCG_Settings fixes for the install release procedure.
- frontier_client 2.8.5.
- See release notes in http://frontier.cern.ch/dist/clientreleasenotes.txt.
- Fix a segmentation fault for queries that require a lot of memory.
- Fix a bug that may lead to mixing of responses to different processes.
- Platforms
- Seven platforms (as in LCG62), initially: four slc5-gcc43 (32/64bit opt/dbg), two slc5-gcc46 (64bit opt/dbg) and one x86_64-mac106-gcc42 (opt).
- Two more platforms were added later for slc5-icc11 (64bit opt/dbg).
LCGCMT 61c (2011.12.12)
- Requested by ATLAS
- Upgrade to ROOT 5.30.05. Urgent fix for CINT dictionary size.
- Complete the port of CORAL and COOL to the Oracle 11g servers (within the LCG61 series that will be used by ATLAS in 2012).
- CORAL 2.3.20a
- Rebuild of CORAL 2.3.20 code base (most recent release).
- COOL 2.8.12a
- Rebuild of COOL 2.8.12 code base (most recent release).
- POOL 2.9.19
- Changes in RelationalCollection:
- Removed granting select to public when creating tables.
- Added auto-flush (1MB) to POOLCollectionTree. Default basket size is 8KB.
- Changes in RootCollection:
- Use TFormula::SetMaxima() to increase operator limit for large queries.
- Externals
- LCGCMT_61c
- ROOT 5.30.05
- See the ROOT 5.30 patches release notes.
- Urgent fix for a CINT bug.
- Platforms
- Four platforms (they were six in LCG61b): slc5-gcc43 (32/64bit opt/dbg). Omitted two x86_64-mac106-gcc42 (opt/dbg) for this build.
LCGCMT 62 (2011.12.09)
- Requested by ATLAS and LHCb
- Upgrade to ROOT 5.32.00 and Boost 1.48. Add gcc46 as a new supported platform.
- Complete the port of CORAL and COOL to the Oracle 11g servers.
- This is the first LCG release without POOL!
- For LHCb this will become immediately a production release, based on Gaudi v23r0.
- For ATLAS this is a development release (ATLAS will use the LCG61 series in production for the 2012 data taking).
- CORAL_2_3_20
- Port to gcc4.6 (bug #89762).
- Fix build errors in CORAL_SERVER: include stdint.h for uint32_t and include cstdio for sprintf.
- Fix build warnings (bug #89768) in LFCReplicaSvc.
- Extend to all gcc the workaround in PyCoral to disable strict-aliasing warnings in opt builds (bug #52384 on gcc43, aka bug #89768 on gcc46). These warnings come from the Py_RETURN_TRUE/FALSE macros in Python.h and cannot be removed.
- Port to boost1.48 (bug #89663). Ensure backward compatibility of the same code to boost1.44 too (#define BOOST_FILESYSTEM_VERSION 3).
- This is actually a fix in one CORAL_SERVER file for the previous port to boost 1.47 (bug #85896) in CMS. The issue had not been noticed because CMS does not build CORAL_SERVER.
- Fixes in CoralCommon:
- Fix in SimpleExpressionParser (bug #89370): do not quote lowercase "like" in SQL statements. Add a test.
- Changes related to the port to Oracle 11g servers (task #23366).
- Disable the use of SQL plan baselines by default in CORAL (task #24486), even if this feature would normally be enabled by default on Oracle 11g. Enable this (explicitly) only if CORAL_ORA_USE_SQL_PLAN_BASELINES is set.
- Allow users to disable specific bug fixes in the Oracle optimizer if CORAL_ORA_FIX_CONTROL is set. This is useful to check if the poor COOL performance observed on 11.2.0.2 servers is due to Oracle bug 9227576.
- Minor changes in OracleAccess:
- Allow the nightly accounts to execute the default slower data dictionary queries (task #10775) if CORAL_ORA_SELECT_FROM_SYS_TABLES is set to 'off' or 'no' (these accounts may have special privileges only on some servers).
- Hardcode the '#undef CORAL240' in a code branch to disable the CORAL 2.4.0 API extensions. Previously these were disabled by default but were re-enabled on a specific nightly slot, leading to possible confusion (bug #89707).
- COOL_2_8_12
- Changes related to the port to Oracle 11g servers (task #23366).
- Disable adaptive cursor sharing in the main IOV queries by adding the NO_BIND_AWARE hint.
- Add the option to change the Oracle optimizer for the main COOL queries using environment variable COOL_ORA_OPTIMIZER_FEATURES.
- Expose the serverVersion() method in RelationalQueryMgr.
- Add tools for locking table/schema statistics (task #24462).
- From now on, the release tag is only applied to the CVS cool.release module.
- Externals
- LCGCMT_62
- ROOT 5.32.00
- Boost 1.48
- Platforms
- Seven platforms: four slc5-gcc43 (32/64bit opt/dbg), two slc5-gcc46 (64bit opt/dbg) and one x86_64-mac106-gcc42 (opt).
LCGCMT 60e (2011.11.22)
- Requested by ATLAS
- Upgrade to ROOT 5.28.00h. Urgent fix for a CINT bug.
- CORAL 2.3.17a
- Rebuild of CORAL 2.3.17 code base (most recent release in the LCG60 series).
- COOL 2.8.10c
- Rebuild of COOL 2.8.10b code base (most recent release in the LCG60 series).
- POOL 2.9.16a
- Rebuild of POOL 2.9.16 code base (most recent release in the LCG60 series).
- Externals
- LCGCMT_60e
- ROOT 5.28.00h
- See the ROOT 5.28 patches release notes.
- Urgent fix for a CINT bug.
- Platforms
- Five platforms (they were six in LCG60c): four slc5-gcc43 (32/64bit opt/dbg) and x86_64-mac106-gcc42-opt. No icc build has been prepared.
LCGCMT 61b (2011.11.08)
- Requested by LHCb
- Upgrade to ROOT 5.30.04 (from 5.30.02). Urgent fix for Xrootd client bug #87880.
- This was the first release built and fully validated by the SPI team.
- CORAL 2.3.19
- Changes in OracleAccess:
- Add the option to change the optimizer for the session using environment variable CORAL_ORA_OPTIMIZER_FEATURES. This is useful in the port to Oracle 11g servers.
- Changes in config:
- Add optional private USERCONTEXT workarounds for user avalassi to take mysql from local files when using the externals in /cvmfs/lhcb.cern.ch.
- COOL 2.8.11a
- Rebuild of COOL 2.8.11 code base (most recent release).
- Changes in nightly test configuration of CORAL_DBLOOKUP_PATH in COOLTests.py, allowing the removal of RelationalCool/tests/dblookup.xml (task #23558) and the removal of the TESTSCONFDIR environment variable in cmt/requiremnts.
- For user lcgnight, CORAL_DBLOOKUP_PATH is now the same as CORAL_AUTH_PATH (/afs/cern.ch/sw/lcg/app/pool/db on linux, ~/private on mac and Windows).
- For all other users, CORAL_DBLOOKUP_PATH is now the same as CORAL_AUTH_PATH (~/private), unless already predefined.
- POOL 2.9.18
- Changes in PersistencySvc:
- Exposed utilityBase for external clients.
- Externals
- Platforms
- Six platforms (they were eleven in LCG61a): four slc5-gcc43 (32/64bit opt/dbg) and two x86_64-mac106-gcc42 (opt/dbg). Omitted four icc and Windows for this build.
LCGCMT 61a (2011.10.05)
- Requested by ATLAS
- Upgrade to ROOT 5.30.02 (from 5.30.00).
- Upgrades in CORAL, COOL and POOL. This includes performance optimizations in CORAL and the port to slc6 and gcc46 for all packages.
- This release was built by the SPI team and validated by the PF team.
- CORAL 2.3.18
- Port to SLC6.
- Do not build LFCReplicaSvc on SLC6 (workaround for bug #86877).
- Fix memory leak in the Blob class (bug #87279).
- Reduce the number of data dictionary queries (task #10844). This implies changes in OracleAccess and CoralCommon.
- In OracleAccess, reduce the number of data dictionary queries in DDL statements (task #10844) in TableDescriptionProxy: in DDL operations like creating or dropping PKs, indexes and FKs, immediately forward the operation to Oracle for execution, and analyse any errors this may raise, instead of performing preliminary checks on the C++ transient DDL cache. This patch also requires changes to OracleStatement::execute to allow the retrieval of the last Oracle error code if this call fails. Add DataDictionary test (also in qmtest).
- In CoralCommon, add a SimpleExpressionParser to reduce the number of data dictionary queries in select statements (task #10844). Add SimpleExpressionParser test (also in qmtest). Fix a few issues in its initial implementation (bug #87111). In OracleAccess, the new parser is used by default in QueryDefinition and can be disabled by setting CORAL_ORA_DISABLE_SIMPLEPARSER.
- Changes in OracleAccess and RelationalAccess:
- Clean up #ifdef CORAL240DC in patch for 'on delete cascade' (sr #115178).
- Changes in CORAL_SERVER/CoralSockets:
- Replace ByteBufferPtr by boost::shared_ptr in DummyRequestHandler to avoid conflicting type definitions (bug #86828).
- Move to the latest SslSocket implementation from HEAD (this is disabled in any case by HAVE_OPENSSL in cmt/requirements).
- Cleanup and other cosmetic changes to reduce differences between CORAL_2_3 patches and HEAD (and eventually fix bug #86734). This includes patches for minor build warnings for new boost versions and compilers, already fixed in HEAD.
- Changes in CORAL_SERVER/CoralMonitor:
- Fix for memory lib monitoring (bug #87240).
- Monitor memory in kbytes instead of pages in coralmonitor (task #22916).
- Changes in CORAL_SERVER test configuration and repository:
- Port the CoralAccess, CoolRegression and HLT tests to user lcgnight (bug #87175), using the same CORAL_AUTH_PATH and CORAL_DBLOOKUP_PATH as in the nightlies. Add fallback from dbg to opt and from cvmfs to AFS. Discover CORAL/COOL/ROOT versions from LCGCMT amd remove hardcoded versions (so that tests can be executed on new releases without any config changes).
- Move the CoralAccess, CoolRegression and HLT tests and the corresponding logs from src/CORAL_SERVER into src/Tests/CORAL_SERVER and src/logs/CORAL_SERVER, respectively. The CORAL_2_3-ATLAS-branch version from CORAL_SERVER has been moved, but also the HEAD version has been removed. This is part of the merger of the HEAD and CORAL_2_3-ATLAS-branch versions of the CORAL_SERVER packages (task #22914). Remove the CORAL_SERVER/cmt directory and remove the need to execute 'cmt config' in any CORAL_SERVER package before running these tests.
- Reduce the verbosity and increase the reproducibility of the logs committed to CVS for CoralAccess, CoolRegression and HLT tests. Obfuscate dates, port numbers, uuid IDs and thread pointers.
- Disable Frontier server proxies in HLT tests (bug #87307).
- Copy runHLT_standalone.py for HLT tests from the relevant ATLAS release. This is part of the pending port to ATLAS 17.0.2 (bug #87171).
- Changes in qmtest config:
- Fix TNS_ADMIN for the nightly user on Windows using DFS (bug #86450).
- Add CORAL_AUTH_PATH and CORAL_DBLOOKUP_PATH to the qmtest wrapper for the nightly user on all platforms (bug #86463).
- Crosscheck QMTEST_CLASS_PATH before executing CORAL qmtest (bug #86964).
- Changes in config:
- Set SITEROOT before CMTROOT in the CMT_env scripts (fix bug #87325).
- COOL 2.8.11
- Complete the internal cleanup of transaction handling (task #3271). Remove transaction handling from the existing Ral/Relational classes and add new transaction-aware TransRel wrappers handled by the user API.
- Within the transaction-less Ral/Relational classes, in particular: remove the distinction between transaction-less methods like __getFolder and transaction-aware methods like getFolder (now only getFolder exists and is transaction-less); within transaction-less methods, check that a transaction is active using the new checkDbOpenTransaction() method.
- In RalTransactionMgr::start(), throw an exception if a transaction is already active. Note that the autoTransactionMode() method still exists: is this still relevant or should this be removed?
- Add RelationalDatabase::AccessMode enum to avoid boolean parameters.
- Add RelationalFolder::useBuffer() to be used in TransRelFolder.
- Adapt tests and utilities (e.g. use TransRalDatabase instead of RalDatabase).
- Also fix two bugs triggered by the first version of this patch: crashes and 'cannot cast to RalDatabase*' in tests (bug #80703), fixed by adding an ObjectIteratorCounter::testIteratorActive method and fixing the PyCool helpers; coolPrivileges fails with 'no active transaction' in frontier tests (bug #83493).
- Changes in tests:
- Fix memory leaks reported by valgrind (task #12670) in the CoolUnitTest base classes in both CoolKernel and RelationalCool.
- Fix gcc46 build warnings (and possible memory leaks) in the FielSelection test in CoolKernel. Enable this test (had forgotten to do this).
- Changes in config:
- Set SITEROOT before CMTROOT in the CMT_env scripts (fix bug #87325).
- POOL 2.9.17
- Port to SLC6.
- Do not build LFCCatalog on SLC6 (workaround for bug #86891).
- Port to gcc46.
- Fix build warnings from '-Wunused-but-set-variable' (bug #86893).
- Changes in qmtest config:
- Fix TNS_ADMIN for the nightly user on Windows using DFS (bug #86450).
- Add CORAL_AUTH_PATH and CORAL_DBLOOKUP_PATH to the qmtest wrapper for the nightly user on all platforms (bug #86463).
- Changes in config:
- Set SITEROOT before CMTROOT in the CMT_env scripts (fix bug #87325).
- Externals
- Platforms
- Drop 32bit mac builds (i386-mac106-gcc42-dbg), no longer needed by ATLAS.
- Eleven platforms (they were twelve in LCG61): four slc5-gcc43 (32/64bit opt/dbg), four slc5-icc11 (32/64bit opt/dbg), two mac106-gcc42 (64bit opt/dbg) and i686-winxp-vc9-dbg.
LCGCMT 59c (2011.09.29)
- Requested by ATLAS
- Upgrade to ROOT 5.26.00g (from 5.26.00e)
- No other upgrade or rebuild.
- CORAL 2.3.14
- Move to LCGCMT_59c the release prepared for LCGCMT_59b, without rebuilding.
- COOL 2.8.8
- Move to LCGCMT_59c the release prepared for LCGCMT_59b, without rebuilding.
- POOL 2.9.11
- Move to LCGCMT_59c the release prepared for LCGCMT_59b, without rebuilding.
- Externals
- LCGCMT_59c
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- The only change with respect to LCGCMT_59b is the new ROOT.
- ROOT 5.26.00g
- Platforms
- Six platforms (as in LCG59b): four slc5-gcc43 (32/64bit opt/dbg) and two x86_64-mac106-gcc42 (opt/dbg).
LCGCMT 60d (2011.09.12)
- Requested by ATLAS
- Upgrade to ROOT 5.28.00g.
- Upgrade to frontier_client 2.8.4.
- This was already done for LCG61 but is needed also in LCG60 (bug #86408).
- This was the first release built and partially validated by the SPI team.
- The validation of CORAL_SERVER tests was then completed by the PF team due to issues when running the HLT tests against the ATLAS 17.x releases.
- CORAL 2.3.17
- Port to Oracle 11g servers (bug #86406): remove warnings in OracleAccess and FrontierAccess in this case.
- Port to boost1.47 (bug #85896). This implies changes in three files in CORAL_SERVER (replace leaf by filename), CoralKernel (replace native_file_string by string) and SQLiteAccess (replace branch_path by parent_path). Thanks to Giulio Eulisse (CMS) for the patch.
- Fixes for monitoring in MonitoringService (bug #86627) and FrontierAccess (bug #86630).
- The patches are tested in a new MonitorController unit test that was added to FrontierAccess, but is still disabled in qmtest (bug #86648).
- Changes in config: use /cvmfs/[lhcb,sft].cern.ch instead of /opt/[lhcb,sft] in the CMT scripts. The /opt directory is now obsolete in the cvmfs software.
- Changes in qmtest: dump also CORAL_AUTH_PATH, CORAL_DBLOOKUP_PATH and TNS_ADMIN from the qmtest environment (see task #21216 and bug #86463). Note that some tests may override these values internally in the C++.
- Changes in CORAL_SERVER
- Improve the /etc/init.d/coralserver script to start the coralServer executable as a service (task #21070). Ensure that the services (one for HEAD and one for CORAL_2_3-patches) are automatically started on boot and stopped on shutdown.
- Add a SIGINT handler for the coralServer executable (task #13097). Use the same signal handler for HEAD and 23patches.
- Cosmetic cleanup in CoralSockets (try to reduce differences with HEAD to fix bug #86734).
- Disable various extra features of coralServer HEAD, including rrdtool/PlotReporter (bug #86552) and ScriptReporter (bug #86550).
- The HLT tests initially failed because the ATLAS release 17.0.0 had been removed, while the port to 17.0.2 has not been completed (bug #87171). As a workaround, the ATLAS release 17.0.0 was made available again.
- COOL 2.8.10b
- Rebuild of COOL 2.8.10a code base (most recent release).
- Changes in config: use /cvmfs/[lhcb,sft].cern.ch instead of /opt/[lhcb,sft] in the CMT scripts. The /opt directory is now obsolete in the cvmfs software.
- Changes in qmtest: dump also CORAL_AUTH_PATH, CORAL_DBLOOKUP_PATH and TNS_ADMIN from the qmtest environment (see task #21216 and bug #86463). Note that some tests may override these values internally in the C++.
- POOL_2_9_16
- In RootCollection and CollectionUtilities, replaced dependency of DataSvc with PersistencySvc.
- In RootCollection, added missing attributes in updateTest.
- In RelationalCollection, merge identical lines returned by grouped GUID query (fix bug creating multiple entries in linktable for the same token).
- Fixes in the port to gcc45: replace headers by again (roll back patch for invalid bug #85423 that was included in POOL 2.9.15).
- Changes in config: use /cvmfs/[lhcb,sft].cern.ch instead of /opt/[lhcb,sft] in the CMT scripts. The /opt directory is now obsolete in the cvmfs software.
- Changes in qmtest: dump also CORAL_AUTH_PATH, CORAL_DBLOOKUP_PATH and TNS_ADMIN from the qmtest environment (see task #21216 and bug #86463). Note that some tests may override these values internally in the C++.
- Externals
- LCGCMT_60d
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- Add trailing blank to ' -m32' CMT macro in LCG_Policy (bug #83826, related to bug #83825).
- Upgrade to frontier_client 2.8.4 (from 2.8.0), including several performance optimizations and related fixes (bug #84067).
- Upgrade to expat 2.0.1 (from 1.95.8). The new frontier_client 2.8.4 is linked against expat 2.0.1, while frontier_client <= 2.8.0 were linked against expat 1.95.8 (see bug #65936 for more information).
- ROOT 5.28.00g
- Platforms
- Six platforms (they were twelve in LCG60c): four slc5-gcc43 (32/64bit opt/dbg), x86_64-slc5-icc11-opt and x86_64-mac106-gcc42-opt.
- ATLAS initially requested only the four slc5-gcc43, then added one icc. The mac build was prepared one month later.
LCGCMT 61 (2011.08.11)
- Requested by LHCb
- Upgrade to ROOT 5.30.00.
- Upgrades in mysql, frontier_client, expat and several other externals.
- Add support for gcc45 (but the release was not built for gcc45).
- Completed the documentation of the release validation procedure so that this can be taken over by the SPI team for the next release.
- CORAL 2.3.16a
- Rebuild of CORAL 2.3.16 code base (most recent release).
- COOL 2.8.10a
- Rebuild of COOL 2.8.10 code base (most recent release).
- POOL 2.9.15
- Port to gcc45: add headers (bug #85423) and enable c++0x for hash maps and hash sets (bug #85424). Also remove a deprecation build warning (bug #85429).
- Externals
- LCGCMT_61
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- Upgrade to frontier_client 2.8.4 (from 2.8.0), including several performance optimizations and related fixes (bug #84067).
- Upgrade to expat 2.0.1 (from 1.95.8). The new frontier_client 2.8.4 is linked against expat 2.0.1, while frontier_client <= 2.8.0 were linked against expat 1.95.8 (see bug #65936 for more information).
- Upgrade to mysql 5.5.14 (from 5.1.45). Upgrades also in cx_oracle, pytools, HepMC, sqlalchemy, storm, tcmalloc.
- Include new packages (e.g. igprof, lxml), drop several old packages (e.g. rx, slc4_compat, tcsh).
- Add support for gcc4.5. Drop support for slc4 and vc7.
- ROOT 5.30.00
- Platforms
- Twelve platforms: four slc5-gcc43 (32/64bit opt/dbg), four slc5-icc11 (32/64bit opt/dbg), three mac106-gcc42 (32/64bit dbg, 64bit opt), i686-winxp-vc9-dbg.
LCGCMT 60c (2011.06.27)
- Requested by ATLAS
- Upgrade to ROOT 5.28.00e.
- Upgrade to oracle 11.2.0.1.0p3.
- Major bug fixes and improvements in CORAL, COOL, POOL.
- CORAL 2.3.16
- Overview. This release includes major changes related to the CORAL handling of network glitches (see task #17692 for an overview).
- In particular, it includes fixes for many segmentation faults observed when using queries and other objects associated to database sessions that have already been closed (either by CORAL internal handling of network glitches, or also by valid user code during the cleanup phase in the absence of network glitches). Most patches are in OracleAccess (where most - all? - such segmentation faults have been fixed, in both single-threaded and multi-threaded use cases). The main such issues have also been fixed in SQLiteAccess for single-threaded cases.
- The release also includes many new tests developed to reproduce these segmentation faults and validate the relevant fixes.
- Other changes include a general consolidation of the test suite (removing obsolete tests and moving the others to a common database server infrastructure) and several fixes, improvements and cosmetic changes in most CORAL packages.
- Note that this release still includes a few differences in many core packages with respect to the HEAD of the code (which includes a few additional preliminary patches for the network glitch issue), but the differences are now significantly reduced and limited to a dozen files. This does not apply to the CORAL_SERVER code, where the release is cut from the CORAL_2_3-ATLAS-branch, while the HEAD includes several changes in both monitoring and transport protocol, still under review.
- Major fixes in OracleAccess related to network glitch handling and to the segmentation faults observed when using stale database sessions:
- Fix crashes when using a stale query after closing a session in another thread (bug #80174, bug #80178, bug #81112), due to the use of stale Transaction, nominal Schema or non-nominal Schema references, respectively. The patch moves the transaction, nominal schema and non-nominal schema deletion from Session::endUserSession to the Session destructor and notifies the transaction and all schemas when endUserSession is called (so that all Transaction/Schema methods may then throw exceptions).
- Fix crashes when using a stale query after closing a session in another thread (bug #80098), due to the use of a stale Transaction reference. The fix simply adds another check that the transaction has not already been deleted.
- Fix crashes when using a stale query after closing a session in another thread (bug #80065), due to the use of a stale Schema reference. The fix adds schema-related methods to SessionProperties and protects them with a mutex that is also required to invalidate the session.
- Fix crashes when using a stale query after closing a session (bug #73834), due to the use of a stale SessionProperties reference. After the fix, Session now owns a shared pointer to SessionProperties, shared with all other OracleAccess classes.
- Fix crashes when using a stale query after closing a session (bug #79983), due to the use of a stale ConnectionProperties reference. After the fix, Connection now owns a shared pointer to ConnectionProperties, shared with all other OracleAccess classes.
- Fix crashes when using a stale query after a network glitch (bug #73334). The crashes are fixed by the two patches for bug #73834 and bug #79983.
- Workaround for crash in OCI when trying to rollback a transaction over a connection that was lost in a network glitch (bug #80092). This had been introduced by the first fix for memory leak bug #80016 (previously the Transaction was not deleted and hence not rolled back).
- Fix memory leak: Schema and Transaction were not deleted if Session is recreated by the automatic reconnection on a network glitch (bug #80016).
- Use isSerializableIfRO instead of skipTransRO as data member and ctor initializer of Transaction; fix Session.cpp accordingly (they have opposite values!). Add an IsSerializableIfRO method in Transaction.
- The patches above imply major changes to the Session, SessionProperties, Connection and ConnectionProperties class structure. Remove from SessionProperties the duplicated data members that can be obtained from ConnectionProperties (the latter is now referenced through a shared pointer and is always valid). Cache the domain service name in SessionProperties. Add mechanism to invalidate the connection pointer in ConnectionProperties. Remove OracleAccess::ISessionProperties and replace all references to it by OracleAccess::SessionProperties references (see task #17489). Keep an OracleAccess::Session reference instead of a coral::ISession reference within SessionProperties (see task #17692). Rename m_properties as m_sessionProperties for consistency in all OracleAccess classes.
- Other fixes in OracleAccess (and other plugins in some cases) not related to stale database session issues:
- Fix bug #78574 in OracleAccess and SQLiteAccess (allow 'select *' joins on many tables). The bug is still pending for the other plugins. Improve the test for this bug and enable it by default only for Oracle and SQLite.
- Fix bug #79765 in OracleAccess (return a QueryException if a result set contains the same column name more than once). The bug is still pending for the other plugins. Add a test and enable it by default only for Oracle.
- Fix bug #75094 in OracleAccess (Cursor::next now throws if a transaction is not active).
- Fix bug #80951 aka bug #73024 in OracleAccess (missing exception when using an invalid schema name). Reenable the corresponding MultipleSchemas test.
- Fix bug #80099 in OracleAccess (throw a QueryException if OracleStatement::defineOutput fails; previously this returned false, but the return value was never checked!).
- Fix bug #79961 in OracleAccess (swapping of exception message, method and module names).
- Fix build errors and warnings on Windows in OracleAccess (e.g. bug #79849 due to WTypes.h header).
- Workaround for Oracle 11g client bug causing a crash when releasing a statement after releasing the associated session (bug #83601; this also fixes the crash reported in bug #76501).
- Undo the changes in OracleAccess and FrontierAccess for sr #119311 that had been committed to the HEAD, but never tagged/released as they broke other functionalities (bug #79498).
- Demote "CORAL_ORA_SKIP_TRANS_READONLY is not set" message from Warning to Info (bug #83290).
- Internal changes for sequence extensions (within #ifdef CORAL240SQ): implement the listSequences functionality.
- Internal changes for change notification extensions (within #ifdef CORAL240CN): add option to print errors in OracleErrorHandler.handleError, improve change notification handling in the Schema class.
- Improve naming convention for OCI handles: use the 'oci' prefix everywhere to distinguish them from CORAL (eg table, view) handles.
- Important fixes in SQLiteAccess (most of which, but not all, are related to stale database session issues):
- Fix crashes when using a stale query after closing a session (bug #73834), due to the use of a stale SessionProperties reference. After the fix, Session now owns a shared pointer to SessionProperties, shared with all other SQLiteAccess classes. Connection also owns a shared pointer to ConnectionProperties, shared with all other SQLiteAccess classes.
- Ensure that stale queries cannot be used after closing a session (bug #79983, aka bug #80022), by checking if the sqlite3 object pointer is still valid.
- Remove SQLiteAccess::ISessionProperties and replace all references to it by SQLiteAccess::SessionProperties references (task #17489 and task #17692).
- Remove coral_sqlite_fk from listTables in SQLiteAccess (bug #82563), but ensure that the plugin internally knows if this table exists (bug #82756).
- In TableDescriptionProxy::refreshForeignKeyInfo, use different exception messages for different error causes (debug bug #82756).
- Replace linux/windows native mutexes by boost mutexes, to simplify the implementation and at the same time fix Windows build errors (bug #83485).
- Other fixes in multiple packages:
- Minor fixes in MySQLAccess. Fix hang closing a session with a transaction still active (bug #72979); fix return value of Session::isReadOnly.
- Minor fix in RelationalAccess to allow CoralMonitoringService to inherit from IMonitoringService (task #17546). This is only relevant to the HEAD version of the CORAL_SERVER monitoring (related to bug #73529).
- Internal changes in CoralCommon. Rename IDevSession::isValid as isSessionValid, IDevSession::invalidate as invalidateSession and IDevConnection::invalidateAll as invalidateAllSessions (see task #17692). Change plugins accordingly.
- Upgrade to the HEAD recent versions of the code in various packages (OracleAccess, SQLiteAccess, FrontierAccess, CoralCommon) where this only implies cosmetic changes but the code is functionally equivalent to the CORAL 2.3.15 version.
- Cosmetic changes using the coolCppCleanup tool (only in the internal implementation of src and tests, not in the public API headers) in ConnectionService, CoralBase, CoralCommon, CoralKernel, EnvironmentAuthenticationService, FrontierAccess, LFCReplicaService, MonitoringService, MySQLAccess, PyCoral, RelationalAccess, RelationalAuthenticationService, RelationalService, SQLiteAccess, XMLAuthenticationService, XMLLookupService. Other cosmetic changes (improve spacing, indentation and comments).
- Extend the test suite to provide better coverage of the network glitch and segmentation fault issues.
- Add MiscellaneousBugs tests for bug #73834, bug #79983, bug #80065, bug #80098, bug #80174, bug #80178, bug #81112 (single-threaded and multi-threaded crashes due to stale Transaction and Schema references) and enable them by default for Oracle (where they are now fixed). For other plugins they can be manually enabled by setting ENABLE_TEST_BUGxxxxx. Some of these tests require to sleep a few seconds inside some OracleAccess methods if CORAL_ORA_TEST_BUGxxxxx_SLEEP5S is set.
- Clean up Tests/PyCoral_NetworkGlitch Enable by default all tests that are now expected to pass. Disable ONLY in the nightlies the 5 tests that are expected to fail/throw (note that NO test is now expected to crash).
- Review other existing tests and consolidate the test suite using a common software and database server infrastructure.
- Move several OracleAccess tests to CppUnit and the lcg_coral_nightly database (bug #63434). Fix tests in several other packages (PyCoral, ConnectionService...) to use the lcg_coral_nightly alias (bug #63434). Fix SQLiteAccess tests, move them to CppUnit (bug #73025, bug #73026, bug #73027, bug #73632, bug #76504) and re-enable them in qmtest. Fix ConnectionService tests, move them to CppUnit (bug #72988) and reenable them in qmtest.
- Add test_PyCoral_MiscellaneousBugs.py to the test suite, including a simple test for bug #61090.
- Add a MiscellaneousBugs test for bug #83601 (aka bug #76501) similar to the ObjectConsistency test; note that the pool cleanup thread must be enabled, otherwise no crash is seen. This is another bug in the Oracle client, similar to bug #61090.
- Improve the ObjectConsistency test (fix it to try/catch expected exceptions, and add new subtests) and enable it for Oracle in qmtest (after fixing bug #75094 and bug #83601; see also bug #76501). Later fixed this test also to avoid crash in Oracle (bug #83706).
- Enable PyCoral_Basic test for bug #75094 for Cursor::next in OracleAccess (now fixed). Fix other tests in PyCoral_Basic after fixing bug #75094.
- Add a MiscellaneousBugs test for bug #80097. This shows that this bug is invalid (there is no crash), but demonstrates another minor bug #80099. The test succeeds after fixing the latter.
- Add MiscellaneousBugs tests for bug #78178 (handling of OCI error while fetching next row). This is disabled by default and must be enabled by setting the ENABLE_TEST_BUGxxxxx environment variable.
- Add a workaround, in the OracleAccess test for multiple sessions, for bug #81005 on Mac (cannot load plugins from multiple threads).
- Improve the CoralBase common CppUnit tests: move BuildUniqueTableName from CoralCppUnitDBTest to CoralCppUnitTest so that it is use by unit tests of packages, rather than only in integration Tests (see bug #73632).
- Execute the OracleAccess unit tests against tables with different names on different slots/platforms using the BuildUniqueTableName function.
- Improvements in CORAL_SERVER tests:
- Move ATLAS HLT tests from AtlasLogin to AtlasSetup (bug #76429).
- Move ATLAS HLT tests from release 16.1.0 in the LCG59 series to release 17.0.0 in the LCG60 series (task #12734).
- Remove workaround for bug #76310 when using ATLAS releases > 16.1.0.
- Improve handling of dates in logfiles.
- Miscellaneous other improvements in the qmtest configuration.
- Exclude UNTESTED tests from qmtests list of 'tests that did not pass' (task #21088). Display CMTCONFIG, LCG_NGT_SLT_NAME and LCG_NGT_SLT_DAY in qmtest summaries (task #21216). Reduce qmtest verbosity also in the committed reference logs (task #18784, task #21088, task #21216).
- Fully migrate to qmtest 2.4.1 the scripts that create qmtest summaries, by adding customizations that produce XML reports in the 2.3.0 format. Previously qmtest 2.3.0 was needed in this step, because of an internal inconsistency between qmtest 'report' and 'summarize' in 2.4.1 (bug #32789).
- Improvements in config:
- Fix CMT macros for icc builds by adding both leading and trailing blanks (bug #83825).
- Using the CMT_env scripts, the environment is configured to build and test against externals from CVMFS (instead of AFS) if file usecvmfs is present.
- Add scripts to enable/disable the ROOT signal handler. The ROOT signal handler can use cvmfs too (not yet the icc/llvm compilers).
- COOL 2.8.10
- Fix excessive exception throwing in checks for payload mode (bug #79937).
- Implement faster BLOB reading in PyCool (task #20032).
- Move COOL_DISABLE_CORALCONNECTIONPOOLCLEANUP/CORALCONNECTIONSHARING warnings from cout to MessageStream (bug #75501).
- Check the return code of coolPrivileges in frontier tests to avoid silent failures (bug #83493).
- Improvements in config:
- Using the CMT_env scripts, the environment is configured to build and test against externals from CVMFS (instead of AFS) if file usecvmfs is present.
- Add scripts to enable or disable the ROOT signal handler.
- Exclude UNTESTED tests from qmtests list of 'tests that did not pass' (task #21088).
- Display CMTCONFIG, LCG_NGT_SLT_NAME and LCG_NGT_SLT_DAY in qmtest summaries (task #21216).
- Fully migrate to qmtest 2.4.1 the scripts that create qmtest summaries, by adding customizations that produce XML reports in the 2.3.0 format. Previously qmtest 2.3.0 was needed in this step, because of an internal inconsistency between qmtest 'report' and 'summarize' in 2.4.1 (bug #32789).
- Reduce qmtest verbosity also in the committed reference logs (task #18784, task #21088, task #21216).
- Fix CMT macros for icc builds by adding both leading and trailing blanks (bug #83825).
- POOL 2.9.14
- Workaround in POOLCore for missing c++0x support in Coverity (bug #80985): use Boost hash maps instead of c++0x hash maps (ONLY for Coverity scans).
- Fixes in RelationalCollection: fix Token comparison (previously spamming Links table); speed up (remove unnecessary operations, see also bug #82091); clean up (remove debug printouts).
- Fixes in CollectionUtilities: corrected info message in CollListMetadata.
- Fixes in RootStorageSvc: updated AUTO_FLUSH DB option to work with regular containers; allow writing of bool and char; add support for long long data types; changed TREE_CACHE option to accept negative values; cosmetic changes (change comments to RootSelect).
- Fixes in StorageSvc: add support for long long data types; improvements for fast file merging.
- Fixes in Tests and in RelationalCollection and RelationalFileCatalog tests: stop using the devdb10 accounts and execute tests against the lcg_pool_nightly alias on lcgaar instead (bug #63434).
- Improvements in config:
- Using the CMT_env scripts, the environment may be configured to build and test against externals from CVMFS (instead of AFS) if file usecvmfs is present.
- Exclude UNTESTED tests from qmtests list of 'tests that did not pass' (task #21088).
- Fix CMT macros for icc builds by adding both leading and trailing blanks (bug #83825).
- Externals
- LCGCMT_60c
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- Upgrade compiler from gcc 4.3.2 to gcc 4.3.5.
- ROOT 5.28.00e
- See the ROOT 5.28 patches release notes.
- More robust fix in the xrootd client to avoid Kerberos server flood (bug #82793). The main fix was already in ROOT 5.28.00.
- oracle 11.2.0.1.0p3
- Workaround for the redefinition of kerberos symbols from libkrb5.so in the Oracle client (bug #76988 aka bug #83996).
- Take sqlnet.ora from a platform-specific TNS_ADMIN directory.
- Platforms
- Twelve platforms: four slc5-gcc43 (32/64bit opt/dbg), four slc5-icc11 (32/64bit opt/dbg), three mac106-gcc42 (32/64bit dbg, 64bit opt), i686-winxp-vc9-dbg.
CORAL 2.3.16 pre-release candidates (2011.06.21)
- Requested by the CORAL team
- The pre-release tags CORAL_2_3_16-pre1 to CORAL_2_3_16-pre11 describe different steps in the progressive fixes for the network glitch issues.
- Show details for pre-release tags.
ATLAS 16.6.7 (2011.06.21)
- Requested by ATLAS
- Upgrade to ROOT 5.26.00f. Urgent fix for bug #82793 to solve the Kerberos KDC request flood.
- No other changes with respect to LCGCMT 59b
- ROOT 5.26.00f is binary compatible to 5.26.00e.
- Keep using CORAL 2.3.14, COOL 2.8.8, POOL 2.9.11 without a rebuild.
LCGCMT 60b (2011.03.15)
- Requested by ATLAS
- Upgrade to ROOT 5.28.00b.
- Upgrade to Qt 4.6.3p2.
- CORAL 2.3.15
- Fixes and improvements in OracleAccess:
- Do not retry to connect if ORA-28001 signals that Oracle password is expired (bug #77440). Improve the test for this issue (fix bug #78276).
- Throw an exception instead of returning false if ICursor::next() encounters an OCI error while fetching the next row (bug #78178). Note that a similar bug may still be pending for the other plugins.
- Add missing implementation of ~SessionProperties (fix bug #79012).
- Always print out the type of RO transactions (serializable vs non serializable) as a warning at the beginning of each session.
- Simplify the internal handling of multiple schemas in OracleAccess by removing the SessionPropertiesProxy class (fix bug #73351). This was done to allow the implementation of one of the possible strategies to fix the crashes after network glitches (pending bug #73334).
- ISession::schema(schemaName) now returns the nominal schema, instead of a duplicate copy, if schemaName is nominal (fix bug #73530).
- Add optional debug printouts for pending bug #73334.
- Cosmetic cleanup using the coolCppClean tool.
- Fix the integration test for Oracle aliases and synonyms (bug #78537). Create the relevant synonyms at the beginning of the test using sqlplus.
- Fix llvm compilation warnings (bug #79151) in CoralBase, CoralCommon, CORAL_SERVER and LFCReplicaSvc.
- COOL 2.8.9a
- Rebuild of COOL 2.8.9 code base (most recent release), with one minor additional code fix.
- Fix a vc9 build warning in the workaround for bug #78519.
- POOL 2.9.13
- Fixes in CollectionUtilities (close collections right after scanning: fixes infinite hang in CORAL when limit of connections was reached on the DB side).
- Enhancement in RootStorageSvc: enable setting SPLITLEVEL for an individual container (task #19587).
- Using the new ROOT_FULL_VERSION_CODE macro, make sure that the RootStorageSvc patch for bug #77747 is applied for ROOT 5.28.00a but not for ROOT 5.28.00.
- Fix llvm compilation warnings (bug #79174) from boost regex and tokenizer headers in RulesFileCatalog and collection packages.
- Externals
- LCGCMT_60b
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- Upgrade to Qt 4.6.3p2 to fix corrupted header in 4.6.3p1 (bug #79099).
- Reconfigure the llvm 2.8 compiler to include gcc4.3 instead of gcc 4.1 headers (partly fix bug #75318).
- ROOT 5.28.00b
- Platforms
- Twelve platforms: four slc5-gcc43 (32/64bit opt/dbg), four slc5-icc11 (32/64bit opt/dbg), two mac106-gcc42 (32/64bit dbg, 64bit opt), i686-winxp-vc9-dbg.
LCGCMT 60a (2011.02.21)
- Requested by ATLAS
- Upgrade to ROOT 5.28.00a.
- Upgrade to Frontier client 2.8.0.
- CORAL 2.3.14b
- Rebuild of CORAL 2.3.14 code base (most recent release).
- COOL 2.8.9
- Workaround for thread reentrancy issues in getenv/setenv (bug #78519).
- Improvements in Frontier test configuration (to test the new Frontier client version):
- Do not fail over to Oracle for R/O regression tests if the CoralServer or Frontier replicas or plugins are not available (fix bug #73787).
- Add middleTier() to CoolAuthentication python package. This is needed to fix bug #73787 for CoralServer.
- Improve regression tests: skip all RO tests if the first fails (db is not open, e.g. because Frontier plugin is not available).
- POOL 2.9.12
- Fix in RootStorageSvc to adapt to changes in ROOT 5.28 patches (bug #77747).
- Patch in StorageSvc to allow the writing of built-in types into the EventTree via the PersistencySvc.
- Externals
- LCGCMT_60a
- ROOT 5.28.00a
- See the ROOT 5.28 patches release notes.
- Remove dependency (incorrectly present in 5.28.00 build) on pcre library, which may be missing for 32bit software on 64bit SLC5 (bug #77476).
- Fix for segmentation fault when reading empty collection (see bug #77747).
- frontier_client 2.8.0.
- See release notes in http://frontier.cern.ch/dist/clientreleasenotes.txt.
- Fix (in 2.8.0) for intermittent segmentation fault (bug #74441).
- Fix (in 2.8.0) for segmentation fault after Frontier timeout (bug #72011).
- Change (in 2.7.15) the default value of clientcachemaxresultsize to 0. This may lead to minor performance degradation in COOL due to the duplication of some queries (bug #66639).
- oracle 11.2.0.1.0p2 (on Linux only)
- Python 2.6.5
- Platforms
- Ten platforms: four slc5-gcc43 (32/64bit opt/dbg), three slc5-icc11 (32/64bit opt, 64bit dbg), two mac106-gcc42-dbg (32/64bit), i686-winxp-vc9-dbg.
LCGCMT 60 (2011.01.28)
- Requested by LHCb
- Upgrade to ROOT 5.28.00.
- Add support for icc11 on slc5 (requested by LHCb online).
- CORAL 2.3.14a
- Rebuild of CORAL 2.3.14 code base (most recent release).
- COOL 2.8.8a
- Rebuild of COOL 2.8.8 code base (most recent release), with a few additional configuration fixes.
- Fix silent failure of COOL tests when the ROOT signal handler cannot be preloaded (bug #77517).
- The tests were failing on i686-slc5-icc11-opt because of ROOT bug #77476 (missing pcre), but because of bug #77517 the cause of the failure initially could not be understood.
- Fix Windows-specific issues
- Fix bug #77083 in CoolDescribeTable python package (on Windows, use "sqlplus user/pswd@host" instead of "sqlplus 'user/pswd@host'").
- Fix vc9 config issues (fix execQmtest.bat; fix private qmtest installation; fix dblookup.xml to run MySQL tests on coralserver instead of itrac424).
- POOL 2.9.11a
- Rebuild of POOL 2.9.11 code base (most recent release).
- Externals
- LCGCMT_60
- ROOT 5.28.00
- See the ROOT 5.28.00 release notes.
- ROOT 5.28 has several performance improvements in I/O. Support for the new features (using the REFLEX_COLLECTIONPROXY_VERSION macro) has been added to POOL 2.9.11 (task #17361).
- Warning: the ROOT 5.28.00 build has a dependency on the pcre library, which may be missing for 32bit software on 64bit SLC5 (bug #77476).
- oracle 11.2.0.1.0p2 (on Linux only)
- Python 2.6.5
- Platforms
- Add support for icc11 on slc5.
- Ten platforms: four slc5-gcc43 (32/64bit opt/dbg), three slc5-icc11 (32/64bit opt, 64bit dbg), two mac106-gcc42-dbg (32/64bit), i686-winxp-vc9-dbg.
LCGCMT 59b (2011.01.18)
- Requested by ATLAS
- Workaround for CORAL bug #58522 (ORA-24327 connection retrial loops). The relevant patch is already included in CORAL 2.3.13.
- Upgrade to ROOT 5.26.00e.
- This release had initially been requested by SPI to exercise the release build procedure, using the most recent CORAL, COOL and POOL versions.
- Drop support for all slc4 platforms and Windows vc7. Complete support for icc11 on slc5 (release not yet built for icc).
- CORAL 2.3.14
- Binary-compatible API changes
- Remove CoralBase/SearchPath.h from the public API and move it to CoralCommon (task #18130).
- Remove build warnings from boost 1.42 headers (bug #76514). Some boost headers are now encapsulated in three new CoralBase headers in the public API (boost_datetime_headers.h, boost_thread_headers.h and boost_filesystem_headers.h).
- Remove CoralKernel/ThreadTraits.h from the public API (task #18607 and bug #76514). Move the ThreadTraits struct to CoralKernel/MonitorObject.h. Use the CoralBase/boost_thread_headers.h header to disable boost warnings.
- Drop support for the RelationalAuthenticationService package (task #18817). This is no longer used by CMS and was never used by ATLAS or LHCb.
- Fix build errors and warnings on Windows.
- Fix build error in OracleAccess on Windows by changing the order of inclusion of system headers (bug #76882 aka bug #73144).
- Fix build errors of Tests on Windows (bug #76886).
- Disable SCL deprecation warnings due to boost headers on vc9 (bug #76887).
- Fix LNK4221 warning about no symbol in Sequence.cpp (bug #77061).
- Major fixes and enhancements in the qmtest infrastructure (task #14540).
- Make the qmtest config static (task #14540) so that the same total number of tests is expected on all platforms (all qmt files are now in CVS). Previously the nightly tests could be green even if tests were not executed, e.g. because they were not built (bug #72842) and/or because the relevant qmtest config could not be generated (bug #72824).
- Unless otherwise specified, every integration test is now executed against all possible six backend combinations (oracle, mysql, sqlite, oracle/coral, oracle/frontier, mysql/coral). Some C++ tests have not yet been modified as needed and are disabled. Add all missing entries in the nighliies dblookup (bug #73475), e.g. for CORAL server tests against MySQL.
- All cpp files in <pkg>/tests/<test> and Tests/<test> in CVS are now included in the qmtest suite (and built through the relevant requirements). With respect to CORAL 2.3.13, on i686-slc5-gcc43-dbg more than 200 tests have been added to qmtest; some tests that still fail and/or are under review (as they may simply be dropped) ahave been disabled and appear as UNTESTED).
- In particular, enable in qmtest the Integration_WriteRead test to write/read all basic types on all backends using CppUnit (task #17496).
- In particular, enable in qmtest the basic PyCoral test creating and querying one table (task #17067).
- Disable Frontier tests on Windows (bug #72380).
- Configure qmtest to fail if stderr is not empty (bug #73604).
- Add a configurable qmtest timeout (bug #72986). Set it to 5 minutes by default.
- Disable the network glitch test on mac (bug #76903) and icc (bug #76893).
- Fixes in qmtest reference logfiles.
- Use relative paths to the reference logfiles instead of absolute paths (the qmt files can be generated on a different directory than the build area where they are actually executed).
- Fix the reference log file for the Integration_InputOutput test on oracle and frontier (bug #76482; see also bug #73048 and bug #73040).
- Eventually reference logfiles will be abandoned as PASS/FAIL will be determined only by CppUnit.
- Major changes to the Tests package by using CppUnit (and/or by improving the old TestEnv infrastructure that will eventually be dropped).
- Modify existing CppUnit tests to use CoralCppUnitTest.h so that nothing is printed to stderr if the test succeeds (bug #73630). Split the CoralCommon and CoralKernel UnitTestSuite's into separate tests. Remove the old UnitTestBase class that is no longer used anywhere.
- In the TestEnv infrastructure, separate setupEnv and dumpEnv to fix the immediate failure of most integration tests (bug #72824). In the nightlies, these tests were green until we moved to static qmtest config (task #14540) as their config could not be dynamically created. Also change the ctor arguments of the TestEnv class.
- Clean up all source code in Tests using the coolCppClean tool.
- Start porting integration tests from TestEnv to CppUnit (task #18153), merging all code for each Test/<test> package into a single cpp file. Temporarely disable the build of ConnectionService integration test (workaround for bug #75313 after deriving TestEnv from CoralCppUnitDBTest).
- Start merging all code for each Test/<test> package into a single cpp file (task #17379), also when using TestEnv.
- Remove TestEnv/TestingConfig.h (task #18175) from a few integration tests. It must still be removed from several more tests.
- Fixes in unit tests.
- Replace hardcoded (and obsolete) Oracle server names in some OracleAccess unit tests (bug #73021 and bug #73022) by the standard URL aliases used for the nightly tests .
- Drop support for CORAL_SERVER on slc4 (ATLAS fully moved to slc5).
- Skip the build and tests for all CORAL_SERVER packages on slc4 (fix the qmtest configuration accordingly, bug #76605).
- Fix the OCI client version getter in OracleAccess (bug #76566).
- Fix several build warnings in icc builds (bug #76568) and one build warning in MySQLAccess (bug #76567). Disable the "auto_ptr is deprecated" warning for gcc 4.5.
- Clean up all source code in CORAL_SERVER using the coolCppClean tool.
- Improve debugging of network glitch test (bug #76917).
- Improve network glitch test: retry if no tunnel seems to have been established, and improve debugging in this case (bug #76917).
- Reduce verbosity of qmtest logs for UNTESTED tests (task #18784).
- Add icc and llvm setup scripts to src/config/cmt (can be used from COOL and POOL too). Fix the 32bit icc setup (different from the 64bit icc setup).
- Use vc9 by default on Windows and drop support for vc7: rename CMT_env_vc9.bat as CMT_env.bat.
- COOL 2.8.8
- Improve the handling of NaN floats and doubles (bug #72147).
- Throw an exception when trying to fill a cool::IField with NaN to store it. Add new exceptions StorageTypeFloatIsNaN and StorageTypeDoubleIsNaN (backward compatible API extensions). Also fix the message of FieldIsNull exceptions from FieldAdapter.
- Existing NaNs stored by CORAL are now read back as null in COOL.
- NaN handling is performed in the two COOL field adapters rather than in StorageType (else it would be impossible to read back CORAL NaNs as null).
- Fix and add test for payload queries in PyCool (bug #76131).
- Fix mac build errors and icc build warnings in PyCool (bug #76891).
- Remove C++ build warnings from the boost 1.42 headers (bug #76621).
- Enhancements in the ACE utility package (decode timestamp encoding).
- Add reference schema tests for the ATLAS 'vector payload' mode (task #10335).
- Escape the sqlplus arguments between quotes for several python scripts.
- Minor fixes to the coolCppClean tool.
- Disable some MySQL tests that fail since the move to a new database server (bug #76649). This means that MySQL is not fully supported for this release!
- Reduce verbosity of qmtest logs for UNTESTED tests (task #18784).
- Improve debugging in CoolDescribeTable (useful to analyse bug #77083).
- Fix CMTINSTALLAREA issues in performanceReport.csh.
- Drop qmtest logfiles for slc4 and vc7.
- Source icc and llvm setup scripts from CORAL_home (remove them from CMTUSERCONTEXT/avalassi).
- Use vc9 by default on Windows and drop support for vc7: rename CMT_env_vc9.bat as CMT_env.bat.
- POOL 2.9.11
- Fixes and enhancements in the storage service packages:
- Add support for the I/O streaming optimizations (task #17361) in ROOT 5.28. This involves changes in RootStorageSvc and RelationalStorageSvc (the patch is enabled only #if REFLEX_COLLECTIONPROXY_VERSION>=3).
- Expose ROOT parameter TREE_AUTO_FLUSH in RootStorageSvc to tune/reduce memory consumption in ATLAS applications.
- Fix bad conflict resolution and remove debug print statements for RootTreeContainer in RootStorageSvc.
- Add AUTO_FLUSH option for databases in RootStorageSvc. Branch containers are written with the whole TTree::Fill if this option is set for a TTree.
- Fix propagation of status code from database transAct() in StorageSvc.
- Fixes and enhancements in the collection packages:
- Add getGroupedGUIDs in CollectionBase, RelationalCollection and CollectionUtilities.
- Handle empty Tokens in RelationalCollection and CollectionUtilities.
- Add event counting with -nevents in CollectionUtilities.
- Fix path to included headers in CollectionUtilities.
- Fix crash for -help in CollectionUtilities.
- Change -noattrib option so it adds all tokens to -queryopt in CollectionUtilities.
- Adapt MetaInfo for specialization and for CollAppendBase user replacement in CollectionUtilities. Forbid MetaInfo changes after init().
- Adapt to removal of CoralCommon from CORAL API (task #15556).
- Take AuthenticationCredentials.h in ObjectRelationalUtilities from RelationalAccess instead of CoralCommon.
- Disable SCL deprecation warnings due to boost headers on vc9 (bug #76889).
- Fixes to address intermittent failures in the POOL collection tests nightly tests due to concurrent access to the same Oracle tables from different slots/platforms (bug #72240).
- Fix by locking the semaphore tables already used for relational storage service tests (bug #71388) and adding dependencies of collection tests on the 'aaa' locking script. Rename 'relationalstorageservice_aaa_locktests' to 'aaa_locktests' to lock all POOL tests including collection tests.
- Fix path to SQLite databases for tests on mac (bug #72379).
- Use different directories on different platforms for qmtest logfiles (task #17391).
- Reduce verbosity of qmtest logs for UNTESTED tests (task #18784).
- Source icc and llvm setup scripts from CORAL_home.
- Use vc9 by default on Windows and drop support for vc7: rename CMT_env_vc9.bat as CMT_env.bat.
- Externals
- LCGCMT_59b
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- Main changes with respect to LCG_59a are new CORAL/COOL/POOL and ROOT.
- Ensure consistent builds in dev nightlies (add the COOL290 and CORAL240SQ build flags to the COOL and CORAL interfaces in the dev slot).
- Upgrade to llvm 2.8 and fix LCG_Platform accordingly (bug #75221).
- ROOT 5.26.00e
- Qt 4.6.3p1 (upgrade from 4.6.3).
- oracle 11.2.0.1.0p2 (on Linux only)
- Python 2.6.5
- Platforms
- Six platforms: four slc5-gcc43 (32/64bit opt/dbg) and two x86_64-mac106-gcc42 (opt/dbg).
- Drop support for all slc4 platforms and Windows vc7.
CORAL 2.3.13 internal tag (2010.12.15)
- Requested by the CORAL team
- This CORAL tag was initially meant to be used for the ATLAS LCG59b release, but was then replace by CORAL 2.3.14.
- This release may be installed on AFS for a single platform for internal regression tests by the CORAL team.
- CORAL 2.3.13
- Add VersionInfo.h to the public API (task #17431) to define CORAL_VERSIONINFO_RELEASE.
- Workaround for ORA-24327 connection retrial loops (eventually resulting in application failure anyway) when the connection to the Oracle server is lost (bug #58522, aka bug #65709, aka bug #75596, aka bug #75946).
- If ORA-03113 or ORA-03135 are caught while starting a session, do not retry to start a session on the same connection because the connection is stale.
- If ORA-24327 is caught while (retrying) starting a session, do not retry to start a session on the same connection because the connection is stale.
- This is only a first quick workaround which should at least avoid that the applications loop for hours stubbornly trying to use a stale connection. The real fix will eventually consist in ensuring that a clean retry is attempted (to this end, the Connection must be refreshed before a new Session can be opened on it!).
- Fix in XMLAuthenticationService: look for authentication.xml first in the CORAL_AUTH_PATH paths and then in the local directory (bug #76297).
- Fix in XMLLookupService: look for dblookup.xml first in the CORAL_DBLOOKUP_PATH paths and then in the local directory (bug #76297).
- Fix bug #73688, previously known as bug #57639 (transaction::commit silently fails if connection is lost). This had been fixed in CORAL 2.3.4, but was reintroduced in CORAL 2.3.10 by the partial fix for bug #65597.
- Fix in SQLiteAccess (bug #73644): when dropping a table, do not delete the corresponding rows from coral_sqlite_fk if coral_sqlite_fk does not exist.
- Fix in FrontierAccess: always throw an exception if attempting to start an update transaction (bug #76072). Adapt the FrontierAccess unit tests.
- Fix in ConnectionService (bug #73529): make sure that the connection service configuration references the monitoring service, so that the monitoring service is always deleted after the connection service.
- Crashes or hangs are observed otherwise. This is mainly relevant for CORAL_SERVER monitoring in HEAD code. The patch also needs the CoralMonitoringService to inherit from IMonitoringService (task #17546).
- Fix CMT requirements causing test builds to silently fail in several packages (bug #72842). In the nightlies, builds were green (CMT gives a warning rather than an error) and tests were green too as the qmt could not be generated.
- Fix PyCoral build rules on Windows (bug #73789). All issues are now fixed and 'import coral' works on Windows.
- Fix build warning "_POSIX_C_SOURCE redefined" in PyCoral on Linux (bug #73166).
- Fix missing message source in the 'ATLAS' HLT message format (task #11132).
- Improve CORAL_SERVER exception messages on the CoralStubs client to clearly indicate server-side exceptions (task #16526).
- Add a new NetworkGlitch test, based on PyCoral, for CORAL reconnection issues (task #12143 and related bugs and tasks). The test uses ssh tunnels to simulate glitches in the network connection to a database.
- Improvements in the qmtest infrastructure
- Add a script to produce qmtest summaries in the logs directory. Commit qmtest summaries to CVS for regression analyses.
- Use different directories on different platforms for qmtest logfiles (task #17391).
- Produce new reference files for Integration_LookupService tests to reflect the change of MySQL server name.
- Consolidate the C++ tests using CppUnit.
- Add CppUnit test drivers CoralCppUnitTest.h and CoralCppUnitDBTest.h (in CoralBase/tests) for CORAL tests with and without database access (task #17379).
- Add a CppUnitExample test.
- Add test_Integration_WriteRead to write/read all basic types on all backends using CppUnit (task #17496). This will only be enabled in the qmtest test suite when the qmtest config is made static (task #14540).
- Make sure that tests derived from CoralCppUnitDBTest use different table names on different slots/platforms (bug #73708).
- Derive the CORAL_SERVER tests from the new test drivers CoralCppUnitTest.h and CoralCppUnitDBTest.h from CoralBase (part of task #17379).
- Remove all CppUnit headers from the CORAL_SERVER packages CoralServerBase, CoralAuthenticationService and CoralMonitor (use those from CoralBase).
- Add a simple test infrastructure for PyCoral (task #17067). Previously there were PyCoral tests at all in the CORAL test suite.
- Add the simplest 'import coral' test (prerequisite for all other tests).
- Add a PyCoralTest module with a TestCase base class and methods to build unique table names on different slots/platforms as in the C++ tests.
- Add a basic PyCoral test creating and querying one table. This will only be enabled in the qmtest test suite when the qmtest config is made static (task #14540).
- Minor fixes in CoralBase implementation code.
- Improve exception messages thrown by the Attribute class (bug #72740). Throw AttributeException's instead of AttributeListException's in classes Attribute and AttributeSpecification.
- Fix class name for AttributeTemplatedData.
- Add a separate isNaN method in a separate CoralBase/src header file to fix build warnings on Windows.
- Port the CORAL_SERVER HLT tests to ATLAS software version 16.1.0 on slc5 (task #12734).
- Add a workaround for bug #76310 in the ATLAS DBReplicaSvc library for replica sorting (add to LD_LIBRARY_PATH a patched version of the library built by the ATLAS online team).
- Use AtlasLogin-01-00-90 for HLT tests as a workaround for bug #76429 (problems in ATLAS setup with AtlasLogin-01-00-91).
- Other fixes in CORAL_SERVER tests.
- Fix test_unit_CoralStubs_AllParts that was taking a long time (bug #72917).
- Reduce #threads from 200 to 20 in test_unit_CoralSockets_ReplyManager (workaround for bug #73031).
- Reduce #threads from 1000 to 20 in test_unit_CoralSockets_ThreadManager (workaround for bug #73032).
- Cleanup config/cmt/requirements. Add fake targets for tests and examples. Configure oracle charset by setting NLS_LANG. Move all packages to public.
- Cosmetic changes in partial fix for network glitch (bug #65597): rename method checkValidation as reconnect in ConnectionService::SessionProxy.
- Cosmetic changes in CoralKernel, CoralCommon and ConnectionService (cleanup using coolCppClean, remove Boost macros, move a few inline methods to .cpp).
- Add ISchema::listSequences within #ifdef CORAL240SQ (bug #61558).
- Remove src/config/scram and all remaining BuildFile's after the move to the new SCRAM in CMS (task #18801).
CORAL 2.3.12a (2010.11.11)
- Requested by CMS
- New CORAL tag for release CMSSW 3.9.2-patch5.
- Port to gcc 4.5.1 with -std=c++0x.
- CORAL 2.3.12a
- [This tag was prepared for the CMS SCRAM build: no CORAL 2.3.12a release built with CMT has been installed on AFS.]
- Port to -std=c++0x for gcc 4.5.1 by applying two patches contributed by CMS in CoralBase and FrontierAccess (bug #75190).
- Apply a similar patch also in MySQLAccess.
- Also test -std=c++0x for target-gccmax in CMT as in CMS (task #18131).
CORAL 2.3.12 (2010.09.16)
- Requested by CMS
- New CORAL tag for release CMSSW 3.9.
- Upgrade to the latest CORAL version.
- Upgrade to the latest SCRAM version.
- CORAL 2.3.12
- [This tag was prepared for the CMS SCRAM build: no CORAL 2.3.12 release built with CMT has been installed on AFS.]
- Fix segmentation fault in OracleAccess when OracleStatement is built with -O2 in gcc 4.3 (bug #54968, aka bug #71853 and bug #59344, aka COOL bug #54756).
- Fix memory leak and file descriptor leak in SQLiteAccess (bug #71449).
- This bug was causing file descriptor starvation in the COOL CherryPy server managed by ATLAS.
- Progress in enforcing FK constraints for SQLite (sr #102114).
- Some CORAL and COOL tests are still failing (bug #71898).
- Fix TNS_ADMIN for Windows tests (bug #71973). The bug had already been fixed (bug #64017) but had then been reintroduced by mistake.
- Improve debug message for opening/closing connections in SQLite (useful to debug bug #71449).
- Add option to set the ConnectionPool automatic cleanup period using environment variable CORAL_CONNECTIONPOOL_CLEANUPPERIOD (bug #72002).
- Fix a related bug: the default value for this parameter (in the absence of the above environment variable) was set twice. This prevented the CORAL_CONNECTIONPOOL_CLEANUPPERIOD from working correctly.
- Improve Info messages related to the ConnectionPool automatic cleanup.
- Remove CoralCommon from the public API installed by CMT (task #15556).
- Move AuthenticationCredentials.h from CoralCommon to RelationalAccess (will fix POOL ObjectRelationalUtilities.cpp accordingly). However, add a deprecation warning and do not remove the header yet from CoralCommon CVS: this header may still be needed in the CMS scram build of the POOL-ORA components (either the old ones in POOL or the new ones in CMS-SW).
- Add the option to print simple reproducible IDs instead of session/connection GUIDs (task #17135).
- This may be useful to produce reproducible log files and easily show differences between various modes of operations (e.g. with/without automatic connection pool cleanup).
- Add ISchema::listSequences within #ifdef CORAL240SQ (bug #61558).
- Enhance monitoring for CORAL_SERVER (in the HEAD branch only).
- Upgrade to the latest SCRAM version in CMS: replace all relevant BuildFile's by the new BuildFile.xml's (task #18801).
LCGCMT 59a (2010.08.25)
- Requested by ATLAS
- Upgrade to ROOT 5.26.00d.
- CORAL 2.3.11
- Fix TIMESTAMP queries in FrontierAccess (bug #69605 reported by CMS).
- Fixes for reading back FLOAT(63) as float, FLOAT(126) as double and NUMBER(38) as long long in FrontierAccess (bug #70208).
- This bug prevented the readback of the ATLASDD geometry via Frontier.
- Also improve FrontierAccess error messages for unsupported SQL types.
- Fix memory leak in OracleAccess BulkOperationWithQuery (bug #70823).
- Fixes for a few bugs found with Coverity (memory leaks, uninitialized variables, missing protections against segfaults...).
- Fix for undefined reference to '__builtin_isnan' in icc builds (bug #69269).
- Fix build warnings in Tests (bug #71824).
- Progress in enforcing FK constraints for SQLite (sr #102114).
- This feature however is still disabled (unless CORAL_SQLITE_FOREIGN_KEYS_ON is set) because some CORAL and COOL tests are still failing (bug #71898).
- Add "#ifdef 240DC" sections for the API extensions adding the 'on delete cascade' option to createForeignKey (sr #115178). ATLAS requires binary compatibility for online/offline in HLT.
- The new feature has been implemented for all backends, including SQLite after enforcing FK constraints (sr #102114).
- The new feature has also been added to PyCoral.
- Improve tests for lost connections (fix bug #69107 in test infrastructure).
- Added new type of 'locked' TestEnv class for the network tests.
- Improve Info and Verbose printouts for opening/closing connections and sessions (fix bug #70523).
- This has been useful for analysing issues in connection pool cleanup (bug #70492) and connection sharing (task #16836).
- In printing out debug information while closing user sessions and database connections, do not retrieve the OracleAccess domain (fix bug #71210).
- Port the standalone ATLAS HLT tests to ATLAS 15.6.9 (task #12734).
- Remove workaround from OracleAccess for bug #69551 in ATLAS HLT tests: it is no longer possible to disable the fix for bug #64215.
- Clean up the directory structure for scripts and logs of HLT test.
- Add support for frontier in the standalone ATLAS HLT tests.
- Add workaround for inconsistent expat version in ATLAS 15.6.9 (bug #65398).
- Add missing SELECT grants for the frontier3d server on the ATLASDD geometry database needed by the HLT tests (bug #69901).
- The patch for bug #70208 is needed to read the Atlas geometry via Frontier.
- Improvements in CORAL_SERVER monitoring (setConnectionProperties can now be called every time, new monitor profile...).
- COOL 2.8.7
- Implement a new 'vector payload' mode for ATLAS (task #10335).
- This implies API extensions in CoolKernel (not in CoolApplication). All API changes and some implementation changes are disabled by "#ifdef COOL290". ATLAS requires binary compatibility for online/offline in HLT.
- Improve test for insertionTimeOfLastObjectInTag (bug #40812 and task #16559).
- Make SQL visually clearer in queries on NEW_HEAD_ID (bug #67759).
- Improvements in exception handling for HVS tag relations.
- Add a new InvalidTagRelation to the public API.
- Throw InvalidTagRelation when creating a relation between the same tag in two different nodes (bug #68071): previously TagExists was thrown.
- Throw InvalidTagRelation when creating a relation between tags in the root node and its non-existing parent node (bug #35891). This had already been effectively solved by a CORAL patch (bug #34512), but previously a CORAL exception was thrown (bug #38422).
- Fix the error message from the NodeRelationNotFound exception (bug #68061). This fix is postponed using "#ifdef COOL290" as it involves API changes.
- Disable CORAL connection sharing if COOL_DISABLE_CORALCONNECTIONSHARING is set (useful to debug ORA-07445 in task #16836).
- POOL 2.9.10
- Fixes and improvements in collection packages
- Fix pool_insertFileToCatalog to return error exit code for broken files (bug #70649).
- Fix collection opening so it does not generate debugBreak from getType if there was no catalog and no technology was specified (bug #70865).
- Fix in RootCollection: queries on non existing attributes will not produce errors (queries will not be processed) if collection is empty.
- Fixes in CollectionUtilities (handling of XML files, identify relational collections, add query deletion, improve debug printouts).
- Fixes in CollectionBase to allow use with PHYSICAL_NAME's.
- Added query in RelationalCollection that reads all Tokens in one go from Oracle with improved performance.
- Fixes to address intermittent failures in the nightly tests due to conflicts between dictionaries for different tests on the same slot and platform.
- Wrap SimpleClass in different namespaces for different tests (bug #69529).
- Fix build warning in Windows resulting from the above patch (bug #70246).
- Fix internal dependencies in POOL Tests (bug #70251).
- Use different temporary directories to build the TestClasses_dict.o object files for different tests using a header with the same name TestClasses.h (bug #71274). This is implemented by adding the '-suffix' option to a CMT 'library' action in the POOL Tests package. A similar patch has also been added to the Reflex interface package in LCGCMT (bug #71079).
- Add missing dependency of tests on the corresponding test dictionaries.
- Add runtime dependency of Tests on XMLCatalog.
- Improve debug messages in FileCatalog if file catalog plugins are missing.
- Fixes to address intermittent failures in the POOL RelationalStorageService nightly tests due to concurrent access to the same Oracle tables from different slots/platforms (bug #71388).
- Add the option to test sqlite instead of oracle on some slots/platforms. We had initially considered running only a single platform/slot against oracle and the rest against sqlite, but this should not be necessary thanks to the other fixes.
- Rename the 'a' test to 'relationalstorageservice_aaa_locktests' so that it only locks the relationalstorageservice tests (bug #71393). Change the locking script for 'aaa' so that tables are locked only if relationalstorageservice tests are executed against Oracle (not sqlite) and increase timeout for locking tables from one to two hours.
- Fix dependencies of relationalstorageservice tests in qmtest: they now fail if 'aaa' fails (bug #71388).
- Fix for ObjectRelationalAccess nightly tests with table names longer than 30 characters (sr #115796).
- Fix in POOLCore for errors (bug #69269) and warnings (bug #71838) from the choice of STL hash implementation in icc builds.
- Reduce verbosity of RelationalStorageService tests from Debug to Info (bug #71390).
- Externals
- LCGCMT_59a
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- Replace 'public' by 'end_private' in LCG_Policy patterns (bug #71069, aka bug #67694).
- Use different temporary directories to build the TestClasses_dict.o object files for different tests using a header with the same name TestClasses.h (bug #71079). This is implemented by adding the '-suffix' option to a CMT 'library' action in the Reflex interface package.
- ROOT 5.26.00d
- oracle 11.2.0.1.0p2 (on Linux only)
- Python 2.6.5
- Grid middleware
- Upgrade (on slc5) dpm, lcgdmcommon and lfc to 1.7.4-7sec, which includes support for python 2.6.
- Upgrade (on slc5) voms client packages to 1.9.17-1, which includes support for certificate authentication in the CORAL server (task #10426). In particular, proxy_verify_callback is now in the public API (bug #47718).
- All of the above packages on slc5 come from the same gLite UI 3.2.8 (release 3.2, update 8).
- Platforms
- On mac106 (OSX), MySQL is not yet supported because of a few pending issues:
- On i386-mac106-gcc42-opt, three MySQL tests fail (bug #67269).
LCGCMT 58e (2010.07.28)
- Requested by LHCb
- Work around the gssapi version inconsistency (bug #70641) by the upgrade to XercesC 3.1.1p1.
- Upgrade to ROOT 5.26.00cp1.
- CORAL 2.3.10
- Move to LCGCMT_58e the release which had been built in LCGCMT_58d, without rebuilding the packages that depend on Xerces. No packages in CORAL depend on ROOT.
- COOL 2.8.6c
- Move to LCGCMT_58e the release which had been built in LCGCMT_58d, without rebuilding the packages that depend on ROOT. No packages in COOL depend on Xerces directly.
- The tests were executed again on all platforms in LCGCMT_58e and were all successful.
- POOL 2.9.9
- Move to LCGCMT_58e the release which had been built in LCGCMT_58d, without rebuilding the packages that depend on Xerces or ROOT.
- Externals
- LCGCMT_58e
- XercesC 3.1.1p1
- Drop network support and link dependency on libgssapi_krb5 to avoid clashes with libglobus_gssapi_gsi_gcc32dbgpthr (workaround for bug #70641).
- The package has been rebuilt only on linux and osx. On Windows it is an identical copy of XercesC 3.1.1.
- ROOT 5.26.00cp1_python25
- Rebuild of 5.26.00c_python26 code base against python25. This includes a few additional fixes over the previous 5.26.00c_python25: fixes for ATLAS in genreflex (bug #70660) and PyROOT iterators (bug #70229), fixes for COOL in PyROOT iterators (bug #70397).
- oracle 11.2.0.1.0p2 (on Linux only)
- Python 2.5.4p2
LCGCMT 59 (2010.07.28)
- Requested by ATLAS
- Upgrade to ROOT 5.26 (from 5.22).
- Upgrade to Python 2.6 (from 2.5).
- New features in POOL and fixes in CORAL.
- Upgrade to XercesC 3.1 and Qt 4.6 (including soqt, qwt, pyqt).
- New LCG_Platforms package in LCGCMT.
- The release was built and tested on July 9. The LCGCMT_59 configuration was then modified on July 28:
- Work around the gssapi version inconsistency (bug #70641) by the upgrade to XercesC 3.1.1p1. The COOL tests were then executed again successfully on all platforms.
- Upgrade to qmtest 2.4.1 (fully compatible with python 2.6).
- CORAL 2.3.10a
- Rebuild of CORAL 2.3.10 code base (most recent release).
- COOL 2.8.6d
- Rebuild of COOL 2.8.6c code base (most recent release).
- Change the COOL qmtest driver to skip the stdout comparison, without relying on a custom change of the qmtest installation. This fixes the failures observed in COOL tests after the upgrade to QMtest 2.4.1 (bug #70804).
- POOL 2.9.9a
- Rebuild of POOL 2.9.9 code base (most recent release), with one additional patch to the C++ code:
- Fix in XMLCatalog to parse the new Xerces3 error messages (bug #69896).
- Platforms
- The two osx105 builds have been dropped. On MacOSX, only the four mac106 builds have been prepared. These are not fully supported yet because a few issues are still observed:
- On i386-mac106-gcc42-opt, three MySQL tests fail (bug #67269).
- On i386-mac106-gcc42-dbg, all tests succeed.
- On x86_64-mac106-gcc42-opt and x86_64-mac106-gcc42-dbg, all tests succeed. For comparison, in COOL 2.8.6b the PyCool tests were hanging (bug #67270).
- Note: 'osx105' and 'mac106' mean MacOSX 10.5 and 10.6, which correspond to Darwin 9 and 10 (see wikipedia). Our build servers presently run MacOSX 10.6.4, i.e. Darwin 10.4.
- Externals
- LCGCMT_59
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- The main difference between LCGCMT_58d for LHCb and LCGCMT_59 for ATLAS is that the former uses python 2.5 (except on a few platforms) whereas the latter uses python 2.6.
- Upgrade to LFC and lcgdmcommon 1.7.3-1sec in LCGCMT_59 (was 1.7.2-1sec in LCGCMT_58d). Note that liblfc.so now needs liblcgdm.so.
- Add dependency of lcgdmcommon on vomsapicpp (bug #70706).
- Move cx_oracle, mysql_python, pyxml and other LCGCMT interfaces to pytools. Add sqlalchemy. Remove mysqlpp.
- Add trailing space in LCG_Policy componentshr_linkopts macro (bug #70715).
- ROOT 5.26.00c_python26
- Rebuild of 5.26.00c_python25 against python26, with a few additional fixes over the 5.26.00c_python25 code base: fixes for ATLAS in genreflex (bug #70660) and PyROOT iterators (bug #70229), fixes for COOL in PyROOT iterators (bug #70397).
- oracle 11.2.0.1.0p2 (on Linux only)
- Python 2.6.5
- Fix in situ for bug #69927 (relink using sqlite 3.6.22 instead of 3.6.8).
- Add missing Python26.dll for Windows vc9 (bug #70275).
LCGCMT 58d (2010.07.09)
- Requested by LHCb
- Solve the libexpat.so version inconsistency (bug #65398).
- Upgrade to XercesC 3.1 and Qt 4.6.
- New LCG_Platforms package in LCGCMT.
- CORAL 2.3.10
- [WARNING! /afs/cern.ch/sw/lcg/app/releases/CORAL/CORAL_2_3_10/src/cmt/project.cmt now points to LCGCMT_58e!]
- Fix memory leak in SQLiteAccess reported by LHCb (bug #68626).
- Fix to avoid ORA-01480 when writing CLOBs larger than 64kb (bug #47663).
- Avoid duplicated queries in FrontierAccess for ATLAS (bug #66638).
- Fix for segmentation fault when using PVSS synonyms (bug #68313).
- Final performance optimization of LFC replica service (task #9774): use only one LFC server thread instead of two threads in each CORAL access.
- Also add retrial and fallback in LFCReplicaService (sr #104759), controlled by environment variables CORAL_LFC_HOSTS (retry hosts), CORAL_LFC_RETRY_PERIOD (retry period in seconds) and CORAL_LFC_RETRY_TIMEOUT (total retry timeout in seconds).
- Workaround for bug #69551 in standalone ATLAS HLT tests: disable the fix for bug #64215 when using the old ATLAS 15.2.0 release.
- Workaround for bug #69751 in standalone ATLAS HLT tests: preload the boost 1.42 threading library (otherwise the HLT code pulls in boost 1.39).
- NB: the standalone HLT tests work ok but this essentially means running the ATLAS (15.2.0) HLT code, built with boost 1.39, against 1.42. The real fix would be to rebuild the ATLAS code against boost 1.42.
- Initial fix for "A transaction is not active" in reconnecting (bug #65597). Add a test for this bug using the 'stone' TCP port forwarding utility.
- NB: this patch re-introduces bug #57639 (transaction::commit silently fails if connection is lost), previously fixed in CORAL 2.3.4, as bug #73688.
- Cleanup of CMT dependencies and requirements files.
- Remove include/UnitTests from the public C++ API and drop the package (task #15551). Inline all CppUnit code into header files and move them to CoralBase. Remove the Gnuplot class (not used anywhere in CORAL).
- Remove include/CoralBricks from the public C++ API and drop the package (task #15554). Move ThreadTraits.h and MonitorObject.h to CoralKernel.
- Remove include/CoralServerProxy from the public C++ API (task #15555).
- Remove include/PyCoral from the public C++ API (task #15557).
- Remove the coral_unit_test_application pattern in CoralBase. Use the coral_unit_test pattern throughout CORAL and CORAL_SERVER.
- Replace the coral_package_application pattern by coral_utility in CoralBase. Use the new pattern throughout CORAL and CORAL_SERVER.
- Cleanup of CORAL_SERVER (CoralStubs, CoralServerProxy) code using dos2unix.
- Unset LCG_NGT_SLT_NAME for standalone CORAL_SERVER tests when using LCGCMT from the nightlies (bug #69109).
- Use the same generic CMT_env scripts in config/cmt in COOL, CORAL, POOL.
- Disable workaround for bug #45746 in MySQL link options on vc9, now fixed in LCGCMT (now link libmysql.lib instead of mysqclient.lib on vc7 and vc9).
- Note that this is not needed in LCGCMT_56-patches: if ever a new release is prepared in this seres, it will be for ATLAS and not use Windows.
- COOL 2.8.6c
- [WARNING! /afs/cern.ch/sw/lcg/app/releases/COOL/COOL_2_8_6c/src/cmt/project.cmt now points to LCGCMT_58e!]
- Rebuild of COOL 2.8.6b C++ code base (most recent release), with minor changes to python code.
- Fix 'keyword arguments are not yet supported' in PyCoolCopy (bug #67820).
- Improve debug messages in CoolDescribeTable python package (bug #67946).
- PyCool is now fully supported on vc9 thanks to the upgrade to a native vc9 build of python 2.6 (bug #61462).
- Improved CMT setup scripts in config/cmt
- Remove all user-specific customizations from generic CMT_env scripts in config/cmt. The same CMT_env are now included in COOL, CORAL, POOL.
- Move all user-specific customizations (CMT_userenv and icc/llvm setup) to config/cmt/USERCONTEXT/$USER.
- Remove obsolete CMT build scripts with custom locking of packages.
- POOL 2.9.9
- [WARNING! /afs/cern.ch/sw/lcg/app/releases/POOL/POOL_2_9_9/src/cmt/project.cmt now points to LCGCMT_58e!]
- Note for LHCb: the POOL 2.9.6 functionalities would have been enough for LHCb, but POOL 2.9.8 or higher is needed to simplify the port to Xerces 3.1.
- Add ATLAS-specific support for fast file merge. This involves changes in StorageSvc (including new database redirection features) and PersistencySvc.
- Remove ObjectDeletePolicy::GLOBAL_DEFAULT from DataSvc API (fix bug #68200 on Windows).
- Fix in RootStorageSvc for RootTreeContainer (mainly relevant to ATLAS using ROOT 5.22).
- Increase TTree size limit to 100GB in RootCollections.
- Fixes and improvements in RelationalCollections.
- Fix retrieval of technology attribute through the Links table (bug #23387).
- Fix queries for tokens.
- Extend CollectionBase API for faster GUID queries.
- Map C++ equality operators to SQL in relational collection queries.
- Improvements in CollectionUtilities.
- Repackage CollSplitByGUID into CollSplitByGUIDBase and CollectionPool.
- Add '-stat' option to CollListMetadata (with protection against crash if no metadata is found).
- Fixes in QueryInfo and SrcInfo.
- Enhancements in CollListToken and CollQuery.
- Add generic CMT_env scripts in config/cmt (the same in COOL, CORAL, POOL).
- Do not link POOLCore against CoralCommon (bug #67776, see also task #15556).
- Externals
- LCGCMT_58d
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- Add new package LCG_Platforms defining the derived CMT tags implied by each primary CMT tag (the mapping was previously in LCG_settings).
- Use externals built with gcc43 (instead of gcc34) for the icc and llvm builds on slc5 (bug #66830). Link the gcc43 libstdc++ for the icc build on slc5, when using externals built with gcc43 (bug #66893). These two changes allow the use of the gcc43 frontier on icc (bug #66966).
- Updated fragments for Qt builds.
- Fix XercesC interface: do not link depdom from Xerces 3.1 (bug #69123).
- Fix mysql interface: link libmysql.lib instead of mysqlclient.lib on Windows (bug #45746 on vc9; aka bug #64856 on vc7 if using mysql 6.0.2).
- Change ROOT interface to set ROOT_native_version from ROOT_config_version and Python_config_version_twodigit (two different installations ROOT 5.26.00c_python25 and ROOT 5.26.00c_python26 are needed).
- ROOT 5.26.00c_python25
- Fix for PyROOT on Windows (bug #68078).
- Fix for 'class already in TClassTable' warnings (bug #66312).
- oracle 11.2.0.1.0p2 (on Linux only)
- Expat 1.95.8, i.e. libexpat.so.0
- Downgrade from 2.0.0, i.e. libexpat.so.1 (bug #65398).
- XercesC 3.1.1, Qt 4.6.0, frontier_client 2.7.14
- MySQL 5.1.45 (this fixes bug #64427 on Windows)
- Add neurobayes interface package
- Platforms
- Upgrade icc compiler from icc 11.1/059 to icc 11.1/072.
- Even if the software is fully supported on vc9 and osx105, this release was not built for vc9 or any osx flavor.
LCGCMT 56g (2010.05.07)
- Requested by ATLAS
- Solve the libexpat.so version inconsistency (bug #65398).
- CORAL 2.3.9a
- Rebuild of CORAL 2.3.9 code base (most recent release).
- COOL 2.8.6b
- Rebuild of COOL 2.8.6a code base (most recent release).
- POOL 2.9.8a
- Rebuild of POOL 2.9.8 code base (most recent release).
- Platforms
- Builds for four new mac106 platforms have been prepared for the first time. These are not fully supported yet because issues were observed in COOL tests:
- On i386-mac106-gcc42-opt, three MySQL tests failed (bug #67269).
- On i386-mac106-gcc42-dbg, all tests succeeded.
- On x86_64-mac106-gcc42-opt and x86_64-mac106-gcc42-dbg, the PyCool tests hang (bug #67270).
- Externals
- LCGCMT_56g
- See the corresponding LCG_Configuration on svnweb.cern.ch.
- Remove Frontier_client dependency on Expat. As a result, the FrontierAccess library is no longer linked against libexpat.so (bug #65936).
- New python 'groups' (pyanalysis, pytools, pygraphics).
- Expat 1.95.8, i.e. libexpat.so.0
- Downgrade from 2.0.0, i.e. libexpat.so.1 (bug #65398).
- frontier_client 2.7.14
- Upgrade from 2.7.13.
- Relinked using libexpat.so.0 instead of libexpat.so.1 (bug #65398). This addresses the crashes observed due to inconsistency between the libexpat.so versions needed by CORAL and other LCG AA components like ROOT (bug #65114) or GFAL (bug #65722).
- ROOT 5.22.00j
LCGCMT 58c (2010.04.21)
- Requested by LHCb
- Fix in CORAL LFCReplicaSvc.
- CORAL 2.3.9
- Performance bug fix and extensive reimplementation in LFC replica service (task #9774).
- Add "#ifdef 240SQ" sections to prototype API extensions related to sequences (ATLAS requires binary compatibility for online/offline in HLT).
- Remove the direct CMT dependency of FrontierAccess on Expat (bug #65936). The dependency remains as it is inherited from LCGCMT Frontier_client.
- COOL 2.8.6a
- Rebuild of COOL 2.8.6 code base (most recent release).
- POOL 2.9.6a
- Rebuild of POOL 2.9.6 code base (used in previous LHCb release LCGCMT 58b, older than most recent release POOL 2.9.8).
- Externals
- LCGCMT_58c
- ROOT 5.26.00b
- As in LCGCMT 58b (previous LHCb release).
- oracle 11.2.0.1.0p1
- Fix for AMD Opteron quadcore in 32bit libnnz11.so (bug #62194).
- Fix for SELinux/SLC5 in 64bit OCI and 32bit OCCI (bug #45238).
LCGCMT 56f (2010.04.01)
- Requested by ATLAS
- Fixes in POOL collections.
- CORAL 2.3.8
- Fix "DDL and DML executed within read/only transaction" (bug #17873) in all plugins. Add new InvalidOperationInReadOnlyTransactionException.
- Use Oracle 10i SQL type BINARY_FLOAT instead of 9i types FLOAT(63) on 11g servers (bug #63994).
- Fix for memory/row cache size in OracleAccess (bug #64215).
- WARNING! Before the fix, 'setMemoryCacheSize(sizeInMb)' was interpreting the argument value as bytes. As the fix now correctly interprets the argument as MB, ATLAS reported jobs hanging with 100% CPU consumption due to swapping: for instance, 'setMemoryCacheSize(1000)' was reserving 1kb and is now reserving 1GB. This is NOT a CORAL bug and must be fixed in the users code (e.g. it has been fixed in ATLAS code).
- The issue described above is not yet fixed in the ATLAS HLT standalone tests in this release (bug #69551).
- Fix for SQLiteAccess segfault in CMS online cluster (bug #62946).
- Fix mutexes in ConnectionPool (bug #64011).
- Fixes for CoralServer 2.3 patches: exception for protocol mismatch (bug #64373), config nightlies with two different server instances for HEAD and 2.3 patches (bug #64446), fix CoralKernel to avoid race condition in CoralServer monitoring cleanup (bug #63042).
- Workaround for Windows build warnings due to bad API definition of IPropertyManager (bug #63198).
- Port MySQLAccess code to Connector/C 6.0.2 on Windows (bug #64427).
- Connector/C 6.0.2 was never used: instead, eventually it was decided to use MySQL 5.1.45 in LCGCMT 59 for ATLAS (58d for LHCb) to fix bug #64427.
- Fixes for tests on Windows: CoralKernel unit tests (bug #64015), workaround in TimeStamp (bug #64016).
- Add "#ifdef 240CN" sections to prototype API extensions related to Oracle change notifications (ATLAS requires binary compatibility for online/offline in HLT).
- COOL 2.8.6
- Fix issue in CLOB optimization patch: identifier too long causes ORA-00972 (bug #64710) and memory leak (bug #64835).
- Fix handling of null string fields: "f1==f2 and f2==f1 return different results" (bug #62634) and FieldAdapter::setNull handling of wrapped Attribute (bug #65100).
- Internal implementation cleanup: use IRelationalQueryDefinition for all queries (task #5282).
- Use TRUNCATE TABLE in MySQL and SQLite tests.
- POOL 2.9.8
- Bug fix for CollSplitByGUID with non-primary token (bug #63860). This fix is needed by ATLAS for TAG use in distributed processing, e.g. to navigate to RAW or ESD from physics TAGs whose primary reference is to AOD.
- Bug fix in RelationalCollectionDataEditor.
- Improved error messages for missing dictionaries in DataSvc.
- Improvements for nightly tests: implement QMtest timeout (bug #64684), disable tests on specific platforms, cascade constraints in dropping tables (bug #61888).
- Improved cleanup in qmtest tests (bug #64429).
- Common improvements in all 3 packages:
- Port code to gcc4.5, llvm and mac106/64bit.
- Port code to Xerces 3.1.
- Externals
- LCGCMT_56f
- ROOT 5.22.00i
- See the ROOT 5.22 patches release notes.
- Fixes for xrootd on OSX 10.4, extend dictionary.
- oracle 10.2.0.4p1
LCGCMT 58b (2010.03.17)
- Requested by LHCb
- Improved build in LCGCMT for Reflex dictionaries.
- Upgraded externals (tcmalloc, fastjet, dcache).
- Add Castor client for OSX.
- CORAL 2.3.7
- As in LCGCMT 58a (previous LHCb release).
- COOL 2.8.5a
- As in LCGCMT 58a (previous LHCb release).
- POOL 2.9.6
- As in LCGCMT 58a (previous LHCb release).
- Externals
- LCGCMT_58b
- ROOT 5.26.00b
- oracle 11.2.0.1.0
LCGCMT 56e (2010.02.16)
- Requested by ATLAS
- Downgrade back to oracle 10.2.0.4 (AMD Opteron quadcore issue).
- Fixes for dcache and xrootd in ROOT.
- Fixes in POOL CollectionUtilities.
- CORAL 2.3.7a
- Rebuild of CORAL 2.3.7 code base (most recent release).
- COOL 2.8.5b
- Rebuild of COOL 2.8.5 code base (most recent release).
- POOL 2.9.7
- Fixes in CollAppendBase in package CollectionUtilities.
- Externals
- LCGCMT_56e
- ROOT 5.22.00h
- See the ROOT 5.22 patches release notes.
- New xrootd including an SSL module for CASTOR and several security fixes in Kerberos.
- Fix dcache issue in dcap://host:port/path (fixed as of 5.22.00g).
- oracle 10.2.0.4p1
- Downgrade from 11g to 10g because of AMD Opteron quadcore issue (bug #62194).
- Light instant client (libociicus.so) instead of 'full' instant client 10.2.0.4p1-full (libociei.so).
- frontier_client 2.7.12
- sqlite 3.6.8
- Boost 1.39.0
LCGCMT 58a (2010.02.16)
- Requested by LHCb
- Fixes for dcache and xrootd in ROOT.
- CORAL 2.3.7
- Workaround for Oracle 11g bug causing a crash when releasing a bulk operation outside a transaction context (bug #61090). Check the return value of OCITransDetach (bug #61981).
- Remove build warnings in PyCoral with python 2.6 (bug #61491).
- Improve warning messages about missing FK support in SQLiteAccess (sr #102114).
- Improvements in Tests and qmtest configuration.
- COOL 2.8.5a
- Rebuild of COOL 2.8.5 code base (most recent release).
- POOL 2.9.6
- Add new package CollectionUtilities with functionalities exposed in public API. Drop package Utilities (tools moved to FileCatalog and CollectionUtilities).
- Complete the port to icc.
- Suppress messages from RootClassLoader "Failed to load dictionary for native class".
- Improve exception handling in PersistencySvc, ImplicitCollection and CollectionBase.
- Externals
- LCGCMT_58a
- ROOT 5.26.00b
- See the ROOT 5.26 patches release notes.
- New xrootd including an SSL module for CASTOR and several security fixes in Kerberos.
- Fix dcache issue in dcap://host:port/path.
- oracle 11.2.0.1.0
- sqlite 3.6.22
- Upgrade from 3.6.8 (support for FK constraints).
- Boost 1.42.0
LCGCMT 58 (2010.01.20)
- Requested by LHCb
- Fixes in CORAL, COOL, POOL.
- Fixes in ROOT.
- Upgrade to Oracle 11g light.
- Upgraded externals (uuid, CLHEP, HepPDT, zlib, frontier_client...).
- Remove pcre.
- CORAL 2.3.6
- Improve timing predictability of ConnectionPool destructor (bug #61400).
- Performance fixes for data dictionary queries in FrontierAccess (bug #60993).
- Remove icc warnings.
- COOL 2.8.5
- Internal cleanup using the coolCppClean tool.
- POOL 2.9.5
- Externals
- LCGCMT_58
- ROOT 5.26.00a
- oracle 11.2.0.1.0
- frontier_client 2.7.12
LCGCMT 56d (2009.12.07)
- Requested by ATLAS
- CORAL 2.3.5
- Implement log file rotation for the CORAL server.
- Fix FrontierAccess problem for bool types (ATLAS bug #60053, aka CMS bug #64988).
- Fix PyCoral crash in ITableDataEditor (ATLAS bug #59574, aka CMS bug #68209).
- Fix PyCoral memory leak (bug #60017).
- Port to boost 1.42 for CMS (bug #58581).
- Prepare new reference log files for Tests.
- COOL 2.8.4
- POOL 2.9.4
- Fix a metadata handling problem that made uploads of remote databases slow.
- Fix crashes in ROOT-based TAGs with metadata entries larger than 4KB.
- Improvements in collection packages.
- Allow the use of tree cache and memberwise streaming in RootStorageSvc .
- Common improvements in all 3 packages:
- Port code to icc.
- Externals
- LCGCMT_56d
- ROOT 5.22.00f
- See the ROOT 5.22 patches release notes.
- Fix for 'int' vs 'unsigned int' in ROOT-based TAGs (bug #56693).
- Fix in symlinks for OSX.
- Fix in TFile.Open for dcache served files.
- Fixes for cintex, genreflex and root-config.
- oracle 11.2.0.1.0
- Upgrade from 10g to 11g client. Update cx_oracle accordingly.
- Move from 'full' (libociei.so) to light (libociicus.so) instant client.
- Python 2.5.4p2
- Fix for AthDictLoaderSvc crash in online HLT (bug #48271).