c7b379c | Philippe Canal | 03 March 2023, 19:23:45 UTC | fBits read: preserve kIsOnHeap, always set kNotDeleted. Rather than reading from the file the value of kIsOnHeap, preserve the value that was calculated at object creation time (i.e. in the current execution). For example, for an embedded object (inside an object created on the heap or stack), the bit always need to be off (i.e. it can never be explicitly deleted) | 20 December 2023, 18:09:42 UTC |
e4ec593 | Enrico Guiraud | 03 August 2023, 17:15:47 UTC | [core] Do not provide our own strlcpy if glibc >= 2.38 Since version 2.38, glibc provides strlcpy and strlcat. No need to provide our own. In fact ROOT's definitions clash with glibc's: the latter are marked `noexcept`. | 31 August 2023, 20:28:38 UTC |
038b8a4 | Philippe Canal | 14 August 2023, 19:36:30 UTC | io: Do not turn on automatically MustClean for TDirectory | 21 August 2023, 16:48:47 UTC |
585de29 | Philippe Canal | 16 August 2023, 00:39:58 UTC | Delete the object held by gROOT after we reset the globals. For example this allows unique_ptr to be deleted first and thus inform TROOT if need be. Fix #13462 | 16 August 2023, 22:45:01 UTC |
c720a8f | Philippe Canal | 11 November 2022, 04:11:30 UTC | Add Rint as a dependency of rootcling `TCling.cxx`’s `RegisterCxxModules` loads explicitly several modules including `Core`, `Rint` and `RIO`. When executing rootcling (for example for G__Net.cxx) *before* `G__Rint.cxx` was created and thus before `lib/Rint.pcm` was properly created, a default `lib/Rint.pcm` is auto-generated and registered as one of the dependencies. Later the real `lib/Rint.pcm` is created is creation date is later than other `pcm` than depends-on/uses it’s creation time. For example: ``` $ ls -lart lib/Net.pcm lib/MultiProc.pcm lib/Imt.pcm lib/MathCore.pcm lib/Rint.pcm -rw-r--r-- 1 pcanal pcanal 1158548 Nov 10 20:26 lib/Net.pcm -rw-r--r-- 1 pcanal pcanal 1278392 Nov 10 20:27 lib/MultiProc.pcm -rw-r--r-- 1 pcanal pcanal 2032752 Nov 10 20:27 lib/Imt.pcm -rw-r--r-- 1 pcanal pcanal 12911448 Nov 10 20:27 lib/MathCore.pcm -rw-r--r-- 1 pcanal pcanal 444724 Nov 10 20:35 lib/Rint.pcm ``` then later uses of those `pcm` leads to the (mis-worded) error message: ``` <<< cling interactive line includer >>>: fatal error: module file '/home/neel/Desktop/Root/build/lib/Rint.pcm' is out of date and needs to be rebuilt: could not read module signature <<< cling interactive line includer >>>: note: imported by module 'MathCore' in '/home/neel/Desktop/Root/build/lib/MathCore.pcm' Error: Module 'MathCore.pcm' failed to load. Error: Error loading the default rootcling header files. make[2]: *** [math/mathmore/CMakeFiles/G__MathMore.dir/build.make:130: math/mathmore/G__MathMore.cxx] Error 1 ``` See the related circumstances in https://root-forum.cern.ch/t/wsl-build-from-source-error-rint-pcm-is-out-of-date-cannot-read-module-signature/47564/39 The stack trace that was triggers the auto-generation of `Rint.pcm` at /home/pcanal/root_working/code/master/interpreter/llvm/src/tools/clang/lib/Sema/SemaModule.cpp:325 at /home/pcanal/root_working/code/master/interpreter/cling/lib/Interpreter/Interpreter.cpp:908 at /home/pcanal/root_working/code/master/interpreter/cling/lib/Interpreter/Interpreter.cpp:872 at /home/pcanal/root_working/code/master/core/metacling/src/TCling.cxx:1590 | 11 November 2022, 22:37:51 UTC |
cd879a3 | Philippe Canal | 14 January 2022, 16:39:07 UTC | TStreamerInfo::New needs to use the CollectionProxy::New This fixes issue #9543 In the issue #9543, the unusual situation is the combination of: * there is (intentionally) no dictionary for `std::map<int,std::vector<int>>` * consequently we use an "emulated collection proxy" for that collection * there is (unintentional due to external config) interpreter information/ClassInfo for `std::map<int,std::vector<int>>` The crux of the issue #9543 is: * TClass::fSizeof info prefers the information from the CollectionProxy * TStreamerInfo::fSize is set to the value of TClass::fSizeOf * TClass:New prefers the constructor from the interpreter * TStreamerInfo::New was using TClass::New for that case * On the failing platform, the `sizeof(std::map<int,std::vector<int>>)` is larger than the size of the emulated collection. Since the I/O and TStreamerInfo uses the TCollection proxy and all of TStreamerInfo needs to prefer the information from the collection proxy (including the 'sizeof'). To fix #9543 the solution is for * TStremearInfo::New to prefer/use TCollectionProxy::New over TClass::New (i.e. the interpreted constructor in this particular case). | 20 January 2022, 12:46:59 UTC |
45a1d8c | Jonas Rembser | 10 August 2021, 09:56:55 UTC | [RF] Fix missing initializer warnings in MemPoolForRooSets.h This PR should fix the build warnings in the v6.18 nightlies. I have checked that the missing field initializer warnings go away with this change by compiling the following example snippet under gcc48: ```C++ // compile with g++ -Wmissing-field-initializers -std=c++11 -o test test.cc struct A{ A() : arr_{{}} {} std::array<int, 10> arr_ = {{}}; }; int main() { A a{}; std::cout << a.arr_[0] << std::endl; return 0; } ``` The warnings are reproduced, and can successfully be suppressed by replacing `{}` with `{{}}`. This is a backport of 855fd44340e13161f88ca09a86e50abf5c1cd5a1. | 21 October 2021, 14:39:26 UTC |
dca7e42 | Philippe Canal | 07 July 2021, 20:11:24 UTC | gdml: add support for the official spelling of millimeter | 07 July 2021, 20:12:33 UTC |
a9f3e86 | Philippe Canal | 22 June 2021, 21:03:46 UTC | Remove stray debug print out. It was inadvertently introduced in 82fad768c9a In TBranchElement::Print use the correct StreamerInfo in case of schema evolution | 22 June 2021, 21:13:09 UTC |
d7e4665 | Vincenzo Eduardo Padulano | 06 May 2021, 12:17:21 UTC | [core] Missing include in string_view header | 31 May 2021, 16:53:27 UTC |
cf1b9ca | Jonas Rembser | 23 April 2021, 16:44:30 UTC | [RF] Use again operator new instead of ObjectAlloc in MemPoolForRooSets This reverts a change from commit b874ed534f40ad80db3f8a3395d5dd44183811bb. The change was causing crashes in in python code. | 29 April 2021, 14:27:25 UTC |
b874ed5 | Jonas Rembser | 21 April 2021, 15:57:16 UTC | [RF] Reduce memory consumption of MemPoolForRooSets The MemPoolForRooSets has two problems: 1. Scaling issues: increasing memory and CPU consumption with increasing number of arenas, becuase trying to allocate a new non-overlapping arena often fails. 2. Amplification of memory leaks in user code: If one of the elements in the arena leaks, the whole arena will leak. Since each arena has 6000 elements, this means a leak of a RooArgSet will be ampilfied by a factor 6000 in the worst case. This commit proposes a solution to the scaling/performance issues and the leak amplification. Explained for the example for RooArgSet, the idea is to use each arena 120 times because this is the size of RooArgSet in bytes. This can be done while still having unique adresses for each RooArgSet: 1. Keep a gap of 120 bytes between each RooArgSet 2. When an address was used before, add one byte and in can be used again So at the cost of allocating 2x more memory per arena, we can reuse each arena 120 times. Now, the good thing is that the interval of creating/deleting RooArgSets is usually higher than 6000. So when reusing an arena multiple times, they will eventually be filled only by leaking RooArgSets if there is a leak. Meaning the leak amplification effect should be gone. This was checked with the CMS Higgs combine toy fit example from the Higgs combine tutorial. Without this commit, there is a GB-level leak that can be clearly observed with `top`, but with this commit the leak becomes negligible again. (cherry picked from commit 73acf88a799547bfe7eacf37a4537a2968da57af) | 22 April 2021, 18:43:51 UTC |
297d2ac | Jonas Rembser | 20 April 2021, 10:43:20 UTC | [RF] Deallocate memory owned by empty MemPoolForRooSets Arenas If an arena in the MemPoolForRooSets is not referenced anymore, it should delete the memory it has allocated. (cherry picked from commit a3f4198f546e6e41323a8d0871aad74fcbb9b252) | 22 April 2021, 18:43:51 UTC |
72f78b8 | Stephan Hageboeck | 16 April 2021, 12:56:14 UTC | [RF] Fix memory leak in ToyMCSampler. Fix #7890. (cherry picked from commit e485b2898ae65b78cd4208ae2f5337b703228c8a) | 22 April 2021, 18:43:51 UTC |
af9cde8 | Sergey Linev | 15 April 2021, 07:43:08 UTC | [webgui] fix compiler warning | 15 April 2021, 11:08:26 UTC |
ccd35b5 | Axel Naumann | 12 April 2021, 09:13:16 UTC | [test] Update location of xrootd test files: The original directory was removed. (cherry picked from commit ca9ab88c7e38046dae309d039b7912e294a5435d) | 14 April 2021, 17:13:08 UTC |
ed9d3f2 | moneta | 04 February 2021, 09:01:52 UTC | Modify testSMatrix.cxx:test16 to test each matrix element with a tolerance of 10 ULP | 04 February 2021, 09:01:52 UTC |
b9f11b0 | moneta | 03 February 2021, 16:42:17 UTC | add some debug when test failed | 03 February 2021, 16:42:32 UTC |
c5ea772 | Stephan Hageboeck | 03 December 2020, 17:40:29 UTC | [RelNotes] Clarify statement in 6.18 release notes. (cherry picked from commit 3a7067669a9e2b64e988cf87394e54953a9025d7) | 03 December 2020, 19:45:09 UTC |
4a54cb9 | Gerardo GANIS | 04 May 2020, 07:57:28 UTC | Add config switch to disable (x)proofd. Default OFF. (#5432) * Add config switch to disable (x)proofd. Default OFF. This patch disables default building proofd and proofx modules, the PROOF ones requiring XRootD. The possibility to build these modules is provided as legacy and controlled by the switch 'xproofd' (-Dxproofd=ON). Note that these modules require XRootD v4 and the xrootd-private-devel RPM installed (or equivalent on Debian systems). Or -Dbuiltin_xrootd=ON . * Proof: fix segv introduced by patch 7a810c6f207 (2020-02-14) | 09 November 2020, 15:16:01 UTC |
dd56717 | Mattias Ellert | 14 July 2020, 06:10:00 UTC | Compatibility with xrootd 5. The old client library libXrdClient is removed. Also XrdSysDNS is removed. Do not build the legacy XProofD file server and client (already disabled by default - give error if someone enables it while building with xrootd 5). Do not build the old libNetx. Build the new libNetNG without XrdSysDNS, use XrdNetAddr instead. | 09 November 2020, 15:16:01 UTC |
bec0dc1 | vepadulano | 14 August 2020, 07:49:22 UTC | GLOBbing is fine, WARNING if install_name_tool not found | 09 November 2020, 15:16:01 UTC |
6ae6337 | vepadulano | 13 August 2020, 14:19:52 UTC | List needed libraries and use ERROR_QUIET | 09 November 2020, 15:16:01 UTC |
4143502 | vepadulano | 12 August 2020, 14:14:43 UTC | Add INSTALL_RPATH to xrootd build and post install script to correct it after installation | 09 November 2020, 15:16:01 UTC |
8ecc0c4 | Enric Tejedor Saavedra | 13 October 2020, 08:03:18 UTC | [PyROOT] Silence deprecated-declarations warning for tp_print in Python3.8 | 13 October 2020, 10:17:34 UTC |
36aea28 | Mattias Ellert | 13 March 2020, 10:45:27 UTC | Fix -Wmissing-field-initializers in python bindings for Python 3.8 and 3.9 Warnings with python 3.8: .../bindings/pyroot/src/MethodProxy.cxx:891:1: warning: missing initializer for member '_typeobject::tp_vectorcall' [-Wmissing-field-initializers] .../bindings/pyroot/src/MethodProxy.cxx:891:1: warning: missing initializer for member '_typeobject::tp_print' [-Wmissing-field-initializers] Warnings with python 3.9: .../bindings/pyroot/src/MethodProxy.cxx:891:1: warning: missing initializer for member '_typeobject::tp_vectorcall' [-Wmissing-field-initializers] | 13 October 2020, 10:17:34 UTC |
df64ad3 | Axel Naumann | 13 October 2020, 09:51:23 UTC | [cmake] Update host for Davix download, as per Maarten's request. | 13 October 2020, 09:52:52 UTC |
0af6e9b | Stefan Wunsch | 28 August 2020, 10:20:43 UTC | [cmake] Load ctest envvars for Python vetos | 28 August 2020, 12:40:19 UTC |
e32de2e | Philippe Canal | 23 July 2020, 16:32:34 UTC | Remove obsolete TGenCollectionProxy::UpdateValueClass. The implementation was not thread safe **and** has been obsolete ever since fType is a TClassRef and since c9460ae556c84c9a7febb7cef6865e8e04c2621a make the update much faster (single atomic update) and thread safe. | 12 August 2020, 17:38:42 UTC |
ff2ff89 | Philippe Canal | 23 July 2020, 15:09:47 UTC | Use std::memory_order_relaxed for 'standalone' atomics | 12 August 2020, 17:38:41 UTC |
44aab6d | Philippe Canal | 21 July 2020, 22:50:57 UTC | Avoid extremely frequent setting of atomic to ... the same value. This was happening to TClass::fVersionUsed. Replacing the assignment with a test then assign greatly improved scaling of io on 'small objects' | 12 August 2020, 17:38:40 UTC |
a89321b | Philippe Canal | 21 July 2020, 22:09:21 UTC | Reduce contention on some atomics in core/meta and io | 12 August 2020, 17:38:40 UTC |
c41ef66 | Philippe Canal | 23 July 2020, 15:31:11 UTC | [NFC] White space. | 12 August 2020, 17:26:32 UTC |
7a6becc | Philippe Canal | 15 July 2020, 00:45:39 UTC | Improve TBasket/TBuffer memory allocation for reading. Rename TBasket::Reset to TBasket::WriteReset Add TBasket::ReadResetBuffer which will shrink the buffer is it is currently significantly larger than it is needed to any of the next (up to) 10 baskets. | 12 August 2020, 17:26:31 UTC |
b77fa7c | Enrico Guiraud | 07 August 2020, 08:43:01 UTC | [DF] Fix inclusion of certain arrow headers in new arrow versions (#6138) arrow/compute/test_util.h has been removed from recent versions, but arrow/testing/gtest_util.h contains what we need and is present both in v0.15 and v0.17. | 07 August 2020, 08:43:01 UTC |
fbe2182 | Philippe Canal | 21 July 2020, 20:09:57 UTC | Avoid auto-parsing for std::pair during I/O init. Don't provoke auto-parsing during name normalization for the std::pair (but let it happen for its parameters if need be). In TGenCollectionProxy Don't provoke autoparsing for an std::pair. In TGenCollectionProxy handle the fact that we may now not find the std::pair. Addresses (at least part of) ROOT-10932 | 23 July 2020, 15:28:27 UTC |
dcb6e6c | Philippe Canal | 14 July 2020, 20:53:21 UTC | In TClass::GetListOfBaseClasses, correct conditional. It looks like without ROOT pcm but with a ClassInfo/Decl available but not loaded then the base class would not be properly setup. | 15 July 2020, 17:15:24 UTC |
d72e536 | Philippe Canal | 14 July 2020, 16:36:48 UTC | Reduce TBasket high water mark use. Fix ROOT-10927. In commit 79f2e3b0e5, TBranch::GetFreshBasket was effectively switch from always reallocating the TBuffer (i.e. minimal memory use but maximal number of memory allocation) to always keeping the TBuffer (i.e. maximal memory use but minimal number of memory allocations). This causes a problem in a use CMS use case where: - files were kept open - TTree were kept in memory - has (at least) one branch with one unusually large basket (257Mb) This accumulated to increase the memory use from 1.8Gb to 2.9Gb. For now (quick fix), we use TBasket::Reset (tuned for writing) also for reading. (This leads to spurrious large reallocation in case of a consecutive series of large baskets). | 14 July 2020, 19:46:01 UTC |
c54aac0 | Philippe Canal | 17 June 2020, 23:47:04 UTC | In MakeProject properly handle ptr in template args. Without this std::map<int,std::vector<double>* > got corrupted into std::map<int,std::vector<double,*> >. This fixes ROOT-10796 | 24 June 2020, 19:17:28 UTC |
1967743 | Philippe Canal | 24 June 2020, 16:14:07 UTC | [NFC][io] Fix typo in comment and add new line after if | 24 June 2020, 16:15:10 UTC |
9181a8d | Philippe Canal | 23 June 2020, 18:16:56 UTC | Fix ROOT-9240 by preventing TMapFile::WhichMapFile from initializing TROOT. TMapFile::WhichMapFile is called via operator delete which is used during RegisterModule and letting TMapFile::WhichMapFile trigger the initialization of the TROOT object means that a) RegisterModule will have nested called to RegisterModule b) The interpreter will be created in the middle of the execution of RegisterModule. Both are potentially fatal (i.e. undefined behavior). | 24 June 2020, 15:54:26 UTC |
1b04aaf | Philippe Canal | 11 June 2020, 19:57:04 UTC | Add missing read lock in THashTable::FindObject(const TObject *obj). Fix ROOT-10839 | 11 June 2020, 19:58:33 UTC |
fdc062d | Philippe Canal | 10 June 2020, 14:50:38 UTC | TTree::CopyAddress: update array allocation for all leaves. Fix ROOT-10837 (and technically it is a completion of the fix for ROOT-9393). See allow commit f8897bb49c2fc81e875a7fd70dec9f1f714e6398 and 6ad1a98455bec01ccfce6ea9ddde62154bedf1a4. Seen with CMS NanoAOD files: https://root-forum.cern.ch/t/merge-nanoaod-root-files/39707/13 When the files have several array branches using the same "leaf count" branch and the maximum array size increase from file to file, only the memory allocated for the "first" array is extended. This results in memory error for the other arrays. | 10 June 2020, 16:26:07 UTC |
d735255 | Stephan Hageboeck | 29 May 2020, 15:46:20 UTC | [RDF] Move dictionary generation into RDF test to fix dependency issues. | 30 May 2020, 13:56:55 UTC |
56534fa | Stephan Hageboeck | 25 May 2020, 12:27:32 UTC | [RDF] Fix a dependency issue for an RDF test. splitcoll-arrayview needs a dictionary to run. This creates a dependency between dictionary generation step and test target to fix a build-system race condition. | 28 May 2020, 20:02:28 UTC |
adb88db | Stephan Hageboeck | 25 May 2020, 12:27:32 UTC | [RDF] Fix a dependency issue for an RDF test. splitcoll-arrayview needs a dictionary to run. This creates a dependency between dictionary generation step and test target to fix a build-system race condition. | 28 May 2020, 13:29:56 UTC |
62f8e99 | Enrico Guiraud | 27 May 2020, 09:34:25 UTC | Revert "[DF] Disable splitcoll_arrayview test if runtime modules are on" Failures in 6.16 even though the test was turned off if runtime modules were on demostrate that this was not the cause, but most probably a race condition in the build system. This reverts commit 603d9701d086bb67fb42e8ee5f921d71bd499e48. | 28 May 2020, 13:29:56 UTC |
142803b | Axel Naumann | 09 November 2019, 09:20:28 UTC | [cmake] Keep PYTHON_EXECUTABLE from find_package(Python2? for tutorials/. (cherry picked from commit e0fa6cc9146ee034b6067f22a4c7d9141af6d80a) | 25 May 2020, 20:18:31 UTC |
edcf6b2 | Axel Naumann | 04 October 2019, 10:59:57 UTC | [cmake] Use FindPython for newer CMake, fixes MacOS 10.14 with Xcode 11: See https://gitlab.kitware.com/cmake/cmake/issues/19763 (cherry picked from commit 38c49999088f58e63f1c819d74abf37363525fd9) | 25 May 2020, 20:18:31 UTC |
ccc8ede | Axel Naumann | 18 May 2020, 08:35:58 UTC | Also capture SFINAE error counts (ROOT-10754, ROOT-10777): When doing lookup on templates, instantiation can fail. This can be triggered during template instantiation somewhere in clang, autoloading, cling-lookup - and SFINAE errors that occur in cling-lookup must not bubble up to clang, or else clang will think that there was a problem (where there was none - just e.g. ROOT trying to autoload a bogus template). In this concrete case, a template specialized with a lambda was not found by clang, was tried to be autoloaded, TMetaUtils produced a broken normalized type name, lookup on the broken type name failed with a SFINAE error - and that ended up being swallowed by a clang SFINAETrap by the topmost lookup. Instead, keep SFINAE errors to ourselves. This is an improved version of 40673e583fceda8b362a0902c6aba371ddd0cfd8 which lowers the SFINAE-reset to Lookup, as AutoParse can still see partial template specialization scopes. It fixes ROOT-10777. (cherry picked from commit 4dcdbcb9f7a5cdc774da9e1dcb67b388cd685039) | 25 May 2020, 08:27:08 UTC |
c8a5b66 | Axel Naumann | 18 May 2020, 08:34:47 UTC | [cling] Make use of shared_ptr operators instead of get() (NFC). (cherry picked from commit add00009abbf854b6838778c947d6d2bbd4943ff) | 25 May 2020, 08:27:08 UTC |
1675987 | Philippe Canal | 20 May 2020, 23:13:14 UTC | Actually use a name unique to the tutorials. mp101_singleCore.root was (of course) also use by mp101_fillNtuples.C | 21 May 2020, 15:28:50 UTC |
c4b551b | Giulio Eulisse | 24 April 2020, 07:04:45 UTC | Fix issues in THistPainter and TFileMerger (#5410) * Protect against division by zero * Protect against null pointer | 20 May 2020, 16:22:57 UTC |
f3ae9f4 | Gerardo Ganis | 29 January 2020, 18:30:45 UTC | Do not use URL format for local files Fixes failing tree/chain related tests | 23 April 2020, 16:28:12 UTC |
3b151da | Gerardo Ganis | 29 January 2020, 15:00:16 UTC | Fix for ROOT-10494 TUrl silently removes double slashes ('//') in the file field. This makes string comparisons later on failing unless is done within TUrl. | 23 April 2020, 16:28:12 UTC |
29bd97b | Philippe Canal | 17 April 2020, 22:37:58 UTC | Fix ROOT-10696 by removing goto statement. Reduce the amount of state change involve in the execution TKey::Read* by using local variable when possible. One thing leaf is the change to fBuffer which is used by ReadFile (called from the TKey::Read*) but changing ReadFile is challenging since it is marked as a virtual function. | 23 April 2020, 15:20:35 UTC |
32878a4 | Giulio Eulisse | 20 April 2020, 19:31:21 UTC | Fix tests arrow tests | 22 April 2020, 18:03:37 UTC |
b10588e | Enrico Guiraud | 20 April 2020, 16:43:40 UTC | [DF] Fix header name in test/datasource_arrow.cxx From arrow v0.15, the header is called test_utils.h | 22 April 2020, 18:03:37 UTC |
450da8a | Enrico Guiraud | 20 April 2020, 15:29:36 UTC | [DF] Do not use C++14 in RArrowDS | 22 April 2020, 18:03:37 UTC |
920a230 | Giulio Eulisse | 19 April 2020, 12:47:24 UTC | Add support for arrow 0.15.0+ | 22 April 2020, 18:03:37 UTC |
07ef970 | Philippe Canal | 07 April 2020, 16:08:42 UTC | Renable TFile::ShrinkCacheFileDir. Use the non static TString::Form to actually modify the cmd string. Use || to actually delete the file when the .ROOT.cachefile does not exist | 08 April 2020, 17:32:24 UTC |
6037cb6 | Nikola Hardi | 11 February 2020, 15:17:21 UTC | TNetXNGFile - read archive member size instead of the whole archive | 07 April 2020, 14:11:50 UTC |
603d970 | Enrico Guiraud | 02 April 2020, 16:28:12 UTC | [DF] Disable splitcoll_arrayview test if runtime modules are on This test fails with runtime C++ modules on in v6.18, runs fine in v6.20 and above. Won't fix. | 03 April 2020, 09:46:16 UTC |
cc19712 | Philippe Canal | 31 March 2020, 01:55:48 UTC | In TEntryList properly check error cases. In TEntryList::Remove and TEntryList::GetEntryAndTree the error case of GetEntry (received indirectly by TEntryList::Remove) was not treated and consequently 'undefined' behavior followed. stressEntryList triggered a crash in GetEntryAndTree when reading random memory to fill the input TTree led to a situation where a TEntryList was created on a large chain but then applied to only a subset of that chain __and__ the selection/random-number was such that none of the entries of the subset was selected (but some of the other part of the large chain was selected). This lead GetEntryAndTree to call GetEntry in a state that it returned an error code (-1) and left the TEntryList in a state unexpected by GetEntryAndTree (namely that fCurrent is nullptr even though fLists is not nullptr) | 31 March 2020, 16:38:08 UTC |
04cf4b3 | Philippe Canal | 31 March 2020, 01:50:06 UTC | In stressEntryList hide expected warning | 31 March 2020, 16:38:08 UTC |
bffe773 | Philippe Canal | 31 March 2020, 01:49:28 UTC | stressEntryList detect if entryList content is completely unexpected | 31 March 2020, 16:38:08 UTC |
5e4d08f | Philippe Canal | 31 March 2020, 01:44:25 UTC | Extend stressEntryList to test weird TEntryList content. Due to the previous random memory address read, we ended up testing a new content layout that we are reproducing now with a 'fixed' cut. In this test, we first create a TEntryList from a large chain but apply it to a small chain but none of the entries in the small tree was selected then it triggered a crash in TEntryList | 31 March 2020, 16:38:08 UTC |
1e340b0 | Philippe Canal | 31 March 2020, 01:36:01 UTC | In stressEntryList do not fill the Tree from random memory address. | 31 March 2020, 16:38:08 UTC |
6d2fb83 | Philippe Canal | 23 March 2020, 23:34:27 UTC | you can now select how MAKEEXE is building the test executable in case of failure. This is a follow up of f52497607d370f688e93df316da41af9ed1ff297 and a fix for ROOT-10632 | 31 March 2020, 16:38:08 UTC |
942f64b | Sergey Linev | 27 March 2020, 11:07:48 UTC | Fix in TEntryList - check fCurrent memeber before access | 31 March 2020, 16:38:08 UTC |
a97668a | Guilherme Amadio | 17 March 2020, 09:51:24 UTC | Patch Vc to avoid warnings about macro redefinitions See https://github.com/VcDevel/Vc/issues/247 for more information. | 27 March 2020, 08:10:33 UTC |
e5ddfc0 | Sergey Linev | 24 March 2020, 08:34:51 UTC | add GLEW as dependency for FTGL | 25 March 2020, 08:10:11 UTC |
282be4e | Sergey Linev | 23 March 2020, 12:06:41 UTC | add missing GL includes in FTGL | 25 March 2020, 08:10:11 UTC |
ca2be84 | Axel Naumann | 24 February 2020, 17:58:53 UTC | [tutorials] Do not overwrite files of other tutorials: Made ARM 256 core builds fail! | 23 March 2020, 15:26:50 UTC |
a73e26e | Enrico Guiraud | 16 March 2020, 11:45:39 UTC | [DF] Move test_splitcoll_arrayview to gtests from roottest | 21 March 2020, 11:30:24 UTC |
bcb6d72 | Jakob Blomer | 13 March 2020, 13:59:14 UTC | [ntuple] cosmetics (NFC) | 16 March 2020, 16:22:01 UTC |
a8b7bf1 | Jakob Blomer | 13 March 2020, 13:57:18 UTC | [ntuple, tutorial] fix bad assert expression | 16 March 2020, 16:22:01 UTC |
9006838 | Philippe Canal | 10 March 2020, 19:20:28 UTC | Protect multi-thread access to TSystem::fHelper. Fix ROOT-9966. | 12 March 2020, 18:30:30 UTC |
ac96ac9 | Sergey Linev | 11 March 2020, 16:41:33 UTC | [NFC] 0 to nullptr | 12 March 2020, 18:30:30 UTC |
ea29771 | Bertrand Bellenot | 27 February 2020, 12:41:28 UTC | Fix compilation error on Windows This patch fixes the following error: In file included from input_line_12:3: In file included from C:/build/night/LABEL/windows10/SPEC/default/V/6-18/build/include\TGWin32.h:24: In file included from C:/build/night/LABEL/windows10/SPEC/default/V/6-18/root/graf2d/win32gdk/gdk/src\gdk/gdk.h:30: In file included from C:/build/night/LABEL/windows10/SPEC/default/V/6-18/root/graf2d/win32gdk/gdk/src\gdk/gdkcc.h:4: C:/build/night/LABEL/windows10/SPEC/default/V/6-18/root/graf2d/win32gdk/gdk/src\gdk/gdktypes.h:32:10: fatal error: 'glib.h' file not found #include <glib.h> ^~~~~~~~ CUSTOMBUILD : error : C:/build/night/LABEL/windows10/SPEC/default/V/6-18/build/bin/rootcling.exe: compilation failure (C:/build/night/LABEL/windows10/SPEC/default/V/6-18/build/bin/libWin32gdk1fec221199_dictUmbrella.h) [C:\build\night\LABEL\windows10\SPEC\default\V\6-18\build\graf2d\win32gdk\G__Win32gdk.vcxproj] | 27 February 2020, 16:24:52 UTC |
181706c | Philippe Canal | 15 February 2020, 01:17:14 UTC | Fix ROOT-10552 incorrect StreamerInfoList update. Prior to this update if a StreamerInfo on file was the exact same as one in memory, it would get recorded in an arbitrary slot in the 'record those StreamerInfo array'. | 20 February 2020, 20:12:18 UTC |
872f5e9 | Philippe Canal | 17 February 2020, 20:25:12 UTC | Fix ROOT-10574, ResolveTypedef was stripping 2 char from name prefixed with :: The code was advancing the cursor and reducing the length, hence ignoring the last 2 characters. This had a visible consequence only if the input was a typedef (then it was not found/replaced when it should have) or the input minus the last 2 characters was a typedef (then it was replaced when it should not have). | 20 February 2020, 20:12:18 UTC |
9545bb8 | Philippe Canal | 12 February 2020, 18:04:23 UTC | TreeFormula: properly handle scalar index variable. Fix ROOT-10557. | 18 February 2020, 15:18:21 UTC |
ef40b56 | Philippe Canal | 12 February 2020, 00:33:38 UTC | TreeFormula: Better variable name | 18 February 2020, 15:18:21 UTC |
da77e82 | Philippe Canal | 23 January 2020, 15:24:00 UTC | Compile Interpreter.cpp with exception on. Fix script with exception with ROOT Mutex on. Compiling Interpreter.cpp allows RunFunction and friends to be actually seen during stack unwind after an exception has been thrown, directly or indirectly, by interpreter code. This allows for the RAII objects to be properly tear down. In particular, without this patch, EnterUserCodeRAII was not tear down and thus the callbacks were not executed. Consequently the "Restore the ROOT global Mutex" callback was not executed leaving the Mutex in an invalid state. In case of ART application, in most cases, they customize the ROOT error handler to throw an exception. This resulted (without this fix) in crash when import a GDML file with an error in it. In practice what we have is: call to TGeo Import which calls the interpreter for some of its functionality which calls gdml code which reports an error which leads the error handler to thrown an exception. ... some of the stack are properly unwound ... some are not (because they were not compiled with exception support on) .... ... so the ROOT Mutex goes into an incorrect state ... ... unwinding continues ... unwinding reached a frame that Unlock the mutex Mutex notices it is an incorrect state. so it reports the Error the Error handler throw an exception ....... and because this exception is being thrown during the unwind, it is fatal. | 31 January 2020, 19:29:52 UTC |
0df98d1 | Philippe Canal | 24 January 2020, 18:26:51 UTC | Clarify conditional in IsDefaultVector | 31 January 2020, 17:15:50 UTC |
818b2f0 | Philippe Canal | 21 January 2020, 17:58:53 UTC | In StreamerInfoActions always respect vector's custom-allocator Previously the handling was inconsistent resulting in mis-matches and thus memory errors. This fixes ROOT-10526. | 31 January 2020, 17:15:50 UTC |
db7bd7d | Philippe Canal | 29 January 2020, 18:11:35 UTC | Update comment in patch to DiagnosticsEngine::DiagStateMap::append | 31 January 2020, 17:05:50 UTC |
10a709f | Philippe Canal | 28 January 2020, 21:49:01 UTC | Add support for DiagnosticEngine state change within recursive parsing. This fixes ROOT-10504. the script: ``` namespace boost { namespace mpl { // Commenting the next line make the assert failure go away struct TTUBE {}; }} ``` reproduce the problem with 'just' ROOT. The trigger is the auto-loading of a library that has a dictionary with has forward decl string .. which all starts with: ``` static const char* fwdDeclCode = R"DICTFWDDCLS( extern int __Cling_Autoloading_Map; .... ``` The order of parsing is (with many ellipsis): ``` "<<< cling interactive line includer >>>" : line 9 : #include “standalone.C” standalone.C : line 1 : #pragma GCC diagnostic push standalone.C : line 2 : #pragma GCC diagnostic ignored "-Wuninitialized" // Inserted in Diag map standalone.C : line 3 : #pragma GCC diagnostic ignored "-Wsign-conversion" // Inserted in Diag map standalone.C : line 8 : struct TTUBE {} ; // triggers auto-loading and thus recursive parsing. "<<< cling interactive line includer >>>" : line 10 : parse dict fwd declare string input_line_9 : line 2 : #pragma clang diagnostic ignored "-Wkeyword-compat" // Inserted in Diag map input_line_9 : line 3 : #pragma clang diagnostic ignored "-Wignored-attributes" // Inserted in Diag map input_line_9 : line 4 : #pragma clang diagnostic ignored "-Wreturn-type-c-linkage" // Inserted in Diag map end of file standalone.C : line 12 : #pragma GCC diagnostic pop // Inserted in Diag map ``` The last line triggers the assert because when recording the state change, it records it as being from ``` standalone.C : line 12 "<<< cling interactive line includer >>>" : line 9 ``` but when recording the last one, it notices that the last state change that happened, indirectly, for the file '<<< cling interactive line includer >>>' happened at line 10 (because of the pragma in input_line_9 which is 'recorded' as being included by line 10), which makes that the state change for ```standalone.C:12``` happens 'ealier' than the last state change as far as the pseudo-file "<<< cling interactive line includer >>>" is concerned. For that pseudo-file, the last state change happened line 10 but the state change bbeing processed happens line 9 (where Standalone.C is being included). | 31 January 2020, 17:05:50 UTC |
7fbd391 | Philippe Canal | 31 October 2019, 11:39:32 UTC | Avoid spurrious header file parsing in TFileMerger | 31 January 2020, 17:05:50 UTC |
9cfb209 | Ivana Hrivnacova | 10 January 2020, 23:09:59 UTC | Fix in TGeoMCGeometry::Mixture(Int_t& kmat, const char* name, Float_t* ...): 'wmat' values were not updated when the function is called with nlmat<0, as they should be to mimic the Geant3 behavior. | 29 January 2020, 14:08:43 UTC |
61d0801 | Axel Naumann | 02 September 2019, 12:58:11 UTC | [vmc] Re-apply: Disambiguate ROOT's ::Info from Pythia8's Info: Some Pythia8 headers expose an unfortunate "using namespace Pythia8". This triggers: In file included from /root/ship-log-keep/sw/slc7_x86-64/ROOT/master_FAIRSHIP-1/include/TMCManager.h:26: /root/ship-log-keep/sw/slc7_x86-64/ROOT/master_FAIRSHIP-1/include/TMCParticleStatus.h:81:7: error: reference to 'Info' is ambiguous Info("Print", "Status of track"); ^ /root/ship-log-keep/sw/BUILD/b61305e07edfb1f9a906335e2093ac409db3c4cc/ROOT/include/TError.h:58:13: note: candidate found by name lookup is 'Info' extern void Info(const char *location, const char *msgfmt, ...) ^ /root/ship-log-keep/sw/slc7_x86-64/pythia/v8230-ship-1/include/Pythia8/Info.h:30:7: note: candidate found by name lookup is 'Pythia8::Info' class Info { ^ By explicitly requesting "::Info" that ambiguity should be resolved. (cherry picked from commit bba421940c2073430ac03126e8f41e334e014c36) (got reverted by commit d90fc155397fd8bf986c03d36cd35f9f1a242b40) | 29 January 2020, 14:08:43 UTC |
5d69a62 | Ivana Hrivnacova | 01 October 2019, 15:32:47 UTC | Fixes in vmc for multi-engine mode (B. Volkel, I. Hrivnacova): - Only rely on presence of TMCManager in multi run (PR#6 in vmc-project/vmc) - Withdraw unwanted TMCVerbose modifications to avoid changes in the tests outputs - Recover TGeoManager::fIsOutside for transfer tracks (PR#3 in vmc-project/vmc) | 29 January 2020, 14:08:43 UTC |
0a77475 | Stephan Hageboeck | 20 January 2020, 10:24:29 UTC | [RF] Fix reducing a dataset with multipe ranges. [ROOT-10517] When reducing a RooDataSet, selecting multiple ranges separated by ',' was ignored. | 21 January 2020, 08:42:07 UTC |
4c97268 | Sergey Linev | 08 January 2020, 08:26:08 UTC | [http] handle symbolic links on Windows when sending file | 09 January 2020, 10:20:53 UTC |
40b61a8 | Sergey Linev | 07 January 2020, 12:06:31 UTC | [http] use own files send method on Windows civetweb mg_send_file function does not support symbolic links on Windows, but in some situations it is required. Advantage of mg_send_file() that it supports partial reading, therefore keep functionality for ROOT files | 07 January 2020, 12:41:29 UTC |
2670d0e | Sergey Linev | 07 January 2020, 10:30:52 UTC | [http] use native windows slahes when sending file via civetweb | 07 January 2020, 12:41:29 UTC |
4132a32 | Sergey Linev | 06 January 2020, 16:57:55 UTC | [http] fix files reading on Windows One has to use binary mode to be able read file content, otherwise Windows may change lines ending and result will not fit into the preallocated string | 07 January 2020, 08:58:49 UTC |
8bc26f4 | Stephan Hageboeck | 13 December 2019, 16:23:30 UTC | [RF] Fix reading trees with long branch names. [ROOT-10413] In 2001, long branch names in TTrees were apparently not supported. RooFit was therefore truncating them. Now, this leads to problems, so the truncation was removed. (cherry picked from commit 0d5f523b43be0b8a579fa93b6267b849a7243129) | 17 December 2019, 17:21:31 UTC |
c202029 | Stephan Hageboeck | 09 December 2019, 10:42:51 UTC | [RF] Restore ability to read HistFactory measurements. [ROOT-10449] When speeding up HistFactory, the type of a pointer was changed to unique_ptr, and moved into a base class. The schema evolution cannot follow both at the same time, so a conversion rule had to be added. (cherry picked from commit b15e692c7ed072493cf3977d7793dc43d32a8f01) | 12 December 2019, 09:32:03 UTC |