root icon indicating copy to clipboard operation
root copied to clipboard

[metacling] TTree Scan MENU dialog does not work well if kMaxEntries is not modified

Open ferdymercury opened this issue 1 year ago • 3 comments

Check duplicate issues.

  • [ ] Checked for duplicates

Description

If you open a TRootBrowser, double click on a TFile, right click on TTree, select Scan from the Menu, and write some values in varexp and selection, and click OK, the input is ignored.

image

************************************************************
*    Row   * time.time * time_fine * slope.slo * pileup.pi *
************************************************************
*        0 *    476428 *        44 * 372.48736 *         0 *
*        1 *   1494475 *        36 * 1432.6547 *         0 *
*        2 *   1526983 *        55 * 205.83961 *         0 *
*        3 *   1774924 *        49 * 297.62847 *         0 *
*        4 *   2046332 *       -56 * 790.71905 *         0 *
*        5 *   2850089 *        41 * 394.59698 *         0 *

Only if you change kMaxEntries to a fixed value, the dialog data are passed well to the function.

image

************************
*    Row   *      time *
************************
*     1799 * 1.045e+09 *
*     1800 * 1.045e+09 *
*     7161 * 1.727e+09 *
*     7162 * 1.727e+09 *
*     9036 * 1.757e+09 *

Reproducer

Open a TFile with a TRootBrowser, right-click on TTree, click on Scan, and write some values in varexp and selection, and click OK, the input is ignored.

ROOT version

ROOT v6.32.00
Built for linuxx8664gcc on May 28 2024, 05:02:02
From tags/v6-32-00@v6-32-00
With c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Binary directory: /opt/root/bin

Installation method

Binary Release

Operating system

Ubuntu 22.04

Additional context

No response

ferdymercury avatar Jul 01 '24 15:07 ferdymercury

It fails at least since ROOT 6.18 It works well in ROOT 5.34 I did some debugging and it seems the problem is in metacling, the "params" argument is lost deep inside the TClingCallFunc routines.

It is correct here:

10 TCling::Execute TCling.cxx 5281 0x7efc7f542288 params = ""time","","",(Long64_t)kMaxEntries,(Long64_t)0"

image

with gDebug=6:

gDebug = 6;
root [3] TKey Reading 2703 bytes at address 3905912
StreamerInfoAction, class:TTree, name=TNamed, fType[0]=67, TStreamerBase, bufpos=58, arr=0x555a6d864fe0, offset=0 ()
StreamerInfoAction, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=64, arr=0x555a6d864fe0, offset=0 ()
StreamerInfoAction, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=74, arr=0x555a6d864fe0, offset=16 ()
StreamerInfoAction, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=79, arr=0x555a6d864fe0, offset=40 ()
Module 'RIO' already loaded for 'TBufferFile'
Module 'RIO' already loaded for 'TBufferFile'
Info in <TBufferFile::ReadClassBuffer>: For class: TNamed has read 32 bytes
ReadBuffer, class:TTree, name=TAttLine, fType[0]=0, TStreamerBase, bufpos=94, arr=0x555a6d864fe0, offset=64
ReadBuffer, class:TAttLine, name=fLineColor, fType[0]=22, TStreamerBasicType, bufpos=100, arr=0x555a6d865020, offset=8
Info in <TBufferFile::ReadClassBuffer>: For class: TAttLine has read 8 bytes
ReadBuffer, class:TTree, name=TAttFill, fType[0]=0, TStreamerBase, bufpos=106, arr=0x555a6d864fe0, offset=80
ReadBuffer, class:TAttFill, name=fFillColor, fType[0]=22, TStreamerBasicType, bufpos=112, arr=0x555a6d865030, offset=8
Info in <TBufferFile::ReadClassBuffer>: For class: TAttFill has read 6 bytes
ReadBuffer, class:TTree, name=TAttMarker, fType[0]=0, TStreamerBase, bufpos=116, arr=0x555a6d864fe0, offset=96
ReadBuffer, class:TAttMarker, name=fMarkerColor, fType[0]=22, TStreamerBasicType, bufpos=122, arr=0x555a6d865040, offset=8
StreamerInfoAction, class:TAttMarker, name=fMarkerSize, fType[1]=5, TStreamerBasicType, bufpos=126, arr=0x555a6d865040, offset=12 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TAttMarker has read 10 bytes
StreamerInfoAction, class:TTree, name=fEntries, fType[4]=16, TStreamerBasicType, bufpos=130, arr=0x555a6d864fe0, offset=112 ()
StreamerInfoAction, class:TTree, name=fTotBytes, fType[5]=16, TStreamerBasicType, bufpos=138, arr=0x555a6d864fe0, offset=120 ()
StreamerInfoAction, class:TTree, name=fZipBytes, fType[6]=16, TStreamerBasicType, bufpos=146, arr=0x555a6d864fe0, offset=128 ()
StreamerInfoAction, class:TTree, name=fSavedBytes, fType[7]=16, TStreamerBasicType, bufpos=154, arr=0x555a6d864fe0, offset=136 ()
StreamerInfoAction, class:TTree, name=fFlushedBytes, fType[8]=16, TStreamerBasicType, bufpos=162, arr=0x555a6d864fe0, offset=144 ()
StreamerInfoAction, class:TTree, name=fWeight, fType[9]=8, TStreamerBasicType, bufpos=170, arr=0x555a6d864fe0, offset=152 ()
ReadBuffer, class:TTree, name=fTimerInterval, fType[0]=23, TStreamerBasicType, bufpos=178, arr=0x555a6d864fe0, offset=160
ReadBuffer, class:TTree, name=fNClusterRange, fType[0]=6, TStreamerBasicType, bufpos=194, arr=0x555a6d864fe0, offset=176
StreamerInfoAction, class:TTree, name=fMaxEntries, fType[12]=16, TStreamerBasicType, bufpos=198, arr=0x555a6d864fe0, offset=184 ()
StreamerInfoAction, class:TTree, name=fMaxEntryLoop, fType[13]=16, TStreamerBasicType, bufpos=206, arr=0x555a6d864fe0, offset=192 ()
StreamerInfoAction, class:TTree, name=fMaxVirtualSize, fType[14]=16, TStreamerBasicType, bufpos=214, arr=0x555a6d864fe0, offset=200 ()
StreamerInfoAction, class:TTree, name=fAutoSave, fType[15]=16, TStreamerBasicType, bufpos=222, arr=0x555a6d864fe0, offset=208 ()
StreamerInfoAction, class:TTree, name=fAutoFlush, fType[16]=16, TStreamerBasicType, bufpos=230, arr=0x555a6d864fe0, offset=216 ()
StreamerInfoAction, class:TTree, name=fEstimate, fType[17]=16, TStreamerBasicType, bufpos=238, arr=0x555a6d864fe0, offset=224 ()
ReadBuffer, class:TTree, name=fClusterRangeEnd, fType[0]=56, TStreamerBasicPointer, bufpos=246, arr=0x555a6d864fe0, offset=232
ReadBuffer, class:TTree, name=fClusterSize, fType[0]=56, TStreamerBasicPointer, bufpos=247, arr=0x555a6d864fe0, offset=240
ReadBuffer, class:TTree, name=fIOFeatures, fType[0]=62, TStreamerObjectAny, bufpos=248, arr=0x555a6d864fe0, offset=312
StreamerInfoAction, class:ROOT::TIOFeatures, name=fIOBits, fType[0]=11, TStreamerBasicType, bufpos=258, arr=0x555a6d865118, offset=0 ()
Info in <TBufferFile::ReadClassBuffer>: For class: ROOT::TIOFeatures has read 7 bytes
ReadBuffer, class:TTree, name=fBranches, fType[0]=61, TStreamerObject, bufpos=259, arr=0x555a6d864fe0, offset=344
StreamerInfoAction, class:TBranch, name=TNamed, fType[0]=67, TStreamerBase, bufpos=306, arr=0x555a6d992770, offset=0 ()
StreamerInfoAction, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=312, arr=0x555a6d992770, offset=0 ()
StreamerInfoAction, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=322, arr=0x555a6d992770, offset=16 ()
StreamerInfoAction, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=327, arr=0x555a6d992770, offset=40 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TNamed has read 24 bytes
ReadBuffer, class:TBranch, name=TAttFill, fType[0]=0, TStreamerBase, bufpos=334, arr=0x555a6d992770, offset=64
ReadBuffer, class:TAttFill, name=fFillColor, fType[0]=22, TStreamerBasicType, bufpos=340, arr=0x555a6d9927b0, offset=8
Info in <TBufferFile::ReadClassBuffer>: For class: TAttFill has read 6 bytes
ReadBuffer, class:TBranch, name=fCompress, fType[0]=23, TStreamerBasicType, bufpos=344, arr=0x555a6d992770, offset=76
StreamerInfoAction, class:TBranch, name=fEntryNumber, fType[3]=16, TStreamerBasicType, bufpos=360, arr=0x555a6d992770, offset=96 ()
ReadBuffer, class:TBranch, name=fIOFeatures, fType[0]=62, TStreamerObjectAny, bufpos=368, arr=0x555a6d992770, offset=112
StreamerInfoAction, class:ROOT::TIOFeatures, name=fIOBits, fType[0]=11, TStreamerBasicType, bufpos=378, arr=0x555a6d9927e0, offset=0 ()
Info in <TBufferFile::ReadClassBuffer>: For class: ROOT::TIOFeatures has read 7 bytes
StreamerInfoAction, class:TBranch, name=fOffset, fType[5]=3, TStreamerBasicType, bufpos=379, arr=0x555a6d992770, offset=116 ()
ReadBuffer, class:TBranch, name=fMaxBaskets, fType[0]=6, TStreamerBasicType, bufpos=383, arr=0x555a6d992770, offset=120
StreamerInfoAction, class:TBranch, name=fSplitLevel, fType[7]=3, TStreamerBasicType, bufpos=387, arr=0x555a6d992770, offset=128 ()
StreamerInfoAction, class:TBranch, name=fEntries, fType[8]=16, TStreamerBasicType, bufpos=391, arr=0x555a6d992770, offset=176 ()
StreamerInfoAction, class:TBranch, name=fFirstEntry, fType[9]=16, TStreamerBasicType, bufpos=399, arr=0x555a6d992770, offset=184 ()
StreamerInfoAction, class:TBranch, name=fTotBytes, fType[10]=16, TStreamerBasicType, bufpos=407, arr=0x555a6d992770, offset=192 ()
StreamerInfoAction, class:TBranch, name=fZipBytes, fType[11]=16, TStreamerBasicType, bufpos=415, arr=0x555a6d992770, offset=200 ()
ReadBuffer, class:TBranch, name=fBranches, fType[0]=61, TStreamerObject, bufpos=423, arr=0x555a6d992770, offset=208
ReadBuffer, class:TBranch, name=fLeaves, fType[0]=61, TStreamerObject, bufpos=448, arr=0x555a6d992770, offset=272
ReadBuffer, class:TLeafL, name=TLeaf, fType[0]=0, TStreamerBase, bufpos=494, arr=0x555a6d941c20, offset=0
StreamerInfoAction, class:TLeaf, name=TNamed, fType[0]=67, TStreamerBase, bufpos=500, arr=0x555a6d941c20, offset=0 ()
StreamerInfoAction, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=506, arr=0x555a6d941c20, offset=0 ()
StreamerInfoAction, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=516, arr=0x555a6d941c20, offset=16 ()
StreamerInfoAction, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=521, arr=0x555a6d941c20, offset=40 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TNamed has read 22 bytes
ReadBuffer, class:TLeaf, name=fLen, fType[0]=23, TStreamerBasicType, bufpos=526, arr=0x555a6d941c20, offset=68
StreamerInfoAction, class:TLeaf, name=fIsRange, fType[2]=18, TStreamerBasicType, bufpos=538, arr=0x555a6d941c20, offset=80 ()
StreamerInfoAction, class:TLeaf, name=fIsUnsigned, fType[3]=18, TStreamerBasicType, bufpos=539, arr=0x555a6d941c20, offset=81 ()
ReadBuffer, class:TLeaf, name=fLeafCount, fType[0]=64, TStreamerObjectPointer, bufpos=540, arr=0x555a6d941c20, offset=88
StreamerInfoAction, class:TLeafL, name=fMinimum, fType[1]=16, TStreamerBasicType, bufpos=544, arr=0x555a6d941c20, offset=112 ()
StreamerInfoAction, class:TLeafL, name=fMaximum, fType[2]=16, TStreamerBasicType, bufpos=552, arr=0x555a6d941c20, offset=120 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TLeafL has read 68 bytes
ReadBuffer, class:TBranch, name=fBaskets, fType[0]=61, TStreamerObject, bufpos=560, arr=0x555a6d992770, offset=336
ReadBuffer, class:TBranch, name=fBasketBytes, fType[0]=43, TStreamerBasicPointer, bufpos=1041, arr=0x555a6d992770, offset=400
ReadBuffer, class:TBranch, name=fBasketEntry, fType[0]=56, TStreamerBasicPointer, bufpos=1498, arr=0x555a6d992770, offset=408
ReadBuffer, class:TBranch, name=fBasketSeek, fType[0]=56, TStreamerBasicPointer, bufpos=2411, arr=0x555a6d992770, offset=416
StreamerInfoAction, class:TBranch, name=fFileName, fType[18]=65, TStreamerString, bufpos=3324, arr=0x555a6d992770, offset=464 ()
StreamerInfoAction, class:TBranch, name=TNamed, fType[0]=67, TStreamerBase, bufpos=3339, arr=0x555a6d8ab760, offset=0 ()
StreamerInfoAction, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=3345, arr=0x555a6d8ab760, offset=0 ()
StreamerInfoAction, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=3355, arr=0x555a6d8ab760, offset=16 ()
StreamerInfoAction, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=3365, arr=0x555a6d8ab760, offset=40 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TNamed has read 34 bytes
ReadBuffer, class:TBranch, name=TAttFill, fType[0]=0, TStreamerBase, bufpos=3377, arr=0x555a6d8ab760, offset=64
ReadBuffer, class:TAttFill, name=fFillColor, fType[0]=22, TStreamerBasicType, bufpos=3383, arr=0x555a6d8ab7a0, offset=8
Info in <TBufferFile::ReadClassBuffer>: For class: TAttFill has read 6 bytes
ReadBuffer, class:TBranch, name=fCompress, fType[0]=23, TStreamerBasicType, bufpos=3387, arr=0x555a6d8ab760, offset=76
StreamerInfoAction, class:TBranch, name=fEntryNumber, fType[3]=16, TStreamerBasicType, bufpos=3403, arr=0x555a6d8ab760, offset=96 ()
ReadBuffer, class:TBranch, name=fIOFeatures, fType[0]=62, TStreamerObjectAny, bufpos=3411, arr=0x555a6d8ab760, offset=112
StreamerInfoAction, class:ROOT::TIOFeatures, name=fIOBits, fType[0]=11, TStreamerBasicType, bufpos=3421, arr=0x555a6d8ab7d0, offset=0 ()
Info in <TBufferFile::ReadClassBuffer>: For class: ROOT::TIOFeatures has read 7 bytes
StreamerInfoAction, class:TBranch, name=fOffset, fType[5]=3, TStreamerBasicType, bufpos=3422, arr=0x555a6d8ab760, offset=116 ()
ReadBuffer, class:TBranch, name=fMaxBaskets, fType[0]=6, TStreamerBasicType, bufpos=3426, arr=0x555a6d8ab760, offset=120
StreamerInfoAction, class:TBranch, name=fSplitLevel, fType[7]=3, TStreamerBasicType, bufpos=3430, arr=0x555a6d8ab760, offset=128 ()
StreamerInfoAction, class:TBranch, name=fEntries, fType[8]=16, TStreamerBasicType, bufpos=3434, arr=0x555a6d8ab760, offset=176 ()
StreamerInfoAction, class:TBranch, name=fFirstEntry, fType[9]=16, TStreamerBasicType, bufpos=3442, arr=0x555a6d8ab760, offset=184 ()
StreamerInfoAction, class:TBranch, name=fTotBytes, fType[10]=16, TStreamerBasicType, bufpos=3450, arr=0x555a6d8ab760, offset=192 ()
StreamerInfoAction, class:TBranch, name=fZipBytes, fType[11]=16, TStreamerBasicType, bufpos=3458, arr=0x555a6d8ab760, offset=200 ()
ReadBuffer, class:TBranch, name=fBranches, fType[0]=61, TStreamerObject, bufpos=3466, arr=0x555a6d8ab760, offset=208
ReadBuffer, class:TBranch, name=fLeaves, fType[0]=61, TStreamerObject, bufpos=3491, arr=0x555a6d8ab760, offset=272
ReadBuffer, class:TLeafB, name=TLeaf, fType[0]=0, TStreamerBase, bufpos=3537, arr=0x555a6d96c230, offset=0
StreamerInfoAction, class:TLeaf, name=TNamed, fType[0]=67, TStreamerBase, bufpos=3543, arr=0x555a6d96c230, offset=0 ()
StreamerInfoAction, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=3549, arr=0x555a6d96c230, offset=0 ()
StreamerInfoAction, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=3559, arr=0x555a6d96c230, offset=16 ()
StreamerInfoAction, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=3569, arr=0x555a6d96c230, offset=40 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TNamed has read 32 bytes
ReadBuffer, class:TLeaf, name=fLen, fType[0]=23, TStreamerBasicType, bufpos=3579, arr=0x555a6d96c230, offset=68
StreamerInfoAction, class:TLeaf, name=fIsRange, fType[2]=18, TStreamerBasicType, bufpos=3591, arr=0x555a6d96c230, offset=80 ()
StreamerInfoAction, class:TLeaf, name=fIsUnsigned, fType[3]=18, TStreamerBasicType, bufpos=3592, arr=0x555a6d96c230, offset=81 ()
ReadBuffer, class:TLeaf, name=fLeafCount, fType[0]=64, TStreamerObjectPointer, bufpos=3593, arr=0x555a6d96c230, offset=88
ReadBuffer, class:TLeafB, name=fMinimum, fType[0]=21, TStreamerBasicType, bufpos=3597, arr=0x555a6d96c230, offset=112
Info in <TBufferFile::ReadClassBuffer>: For class: TLeafB has read 64 bytes
ReadBuffer, class:TBranch, name=fBaskets, fType[0]=61, TStreamerObject, bufpos=3599, arr=0x555a6d8ab760, offset=336
ReadBuffer, class:TBranch, name=fBasketBytes, fType[0]=43, TStreamerBasicPointer, bufpos=3688, arr=0x555a6d8ab760, offset=400
ReadBuffer, class:TBranch, name=fBasketEntry, fType[0]=56, TStreamerBasicPointer, bufpos=3753, arr=0x555a6d8ab760, offset=408
ReadBuffer, class:TBranch, name=fBasketSeek, fType[0]=56, TStreamerBasicPointer, bufpos=3882, arr=0x555a6d8ab760, offset=416
StreamerInfoAction, class:TBranch, name=fFileName, fType[18]=65, TStreamerString, bufpos=4011, arr=0x555a6d8ab760, offset=464 ()
StreamerInfoAction, class:TBranch, name=TNamed, fType[0]=67, TStreamerBase, bufpos=4026, arr=0x555a6d967db0, offset=0 ()
StreamerInfoAction, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=4032, arr=0x555a6d967db0, offset=0 ()
StreamerInfoAction, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=4042, arr=0x555a6d967db0, offset=16 ()
StreamerInfoAction, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=4048, arr=0x555a6d967db0, offset=40 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TNamed has read 26 bytes
ReadBuffer, class:TBranch, name=TAttFill, fType[0]=0, TStreamerBase, bufpos=4056, arr=0x555a6d967db0, offset=64
ReadBuffer, class:TAttFill, name=fFillColor, fType[0]=22, TStreamerBasicType, bufpos=4062, arr=0x555a6d967df0, offset=8
Info in <TBufferFile::ReadClassBuffer>: For class: TAttFill has read 6 bytes
ReadBuffer, class:TBranch, name=fCompress, fType[0]=23, TStreamerBasicType, bufpos=4066, arr=0x555a6d967db0, offset=76
StreamerInfoAction, class:TBranch, name=fEntryNumber, fType[3]=16, TStreamerBasicType, bufpos=4082, arr=0x555a6d967db0, offset=96 ()
ReadBuffer, class:TBranch, name=fIOFeatures, fType[0]=62, TStreamerObjectAny, bufpos=4090, arr=0x555a6d967db0, offset=112
StreamerInfoAction, class:ROOT::TIOFeatures, name=fIOBits, fType[0]=11, TStreamerBasicType, bufpos=4100, arr=0x555a6d967e20, offset=0 ()
Info in <TBufferFile::ReadClassBuffer>: For class: ROOT::TIOFeatures has read 7 bytes
StreamerInfoAction, class:TBranch, name=fOffset, fType[5]=3, TStreamerBasicType, bufpos=4101, arr=0x555a6d967db0, offset=116 ()
ReadBuffer, class:TBranch, name=fMaxBaskets, fType[0]=6, TStreamerBasicType, bufpos=4105, arr=0x555a6d967db0, offset=120
StreamerInfoAction, class:TBranch, name=fSplitLevel, fType[7]=3, TStreamerBasicType, bufpos=4109, arr=0x555a6d967db0, offset=128 ()
StreamerInfoAction, class:TBranch, name=fEntries, fType[8]=16, TStreamerBasicType, bufpos=4113, arr=0x555a6d967db0, offset=176 ()
StreamerInfoAction, class:TBranch, name=fFirstEntry, fType[9]=16, TStreamerBasicType, bufpos=4121, arr=0x555a6d967db0, offset=184 ()
StreamerInfoAction, class:TBranch, name=fTotBytes, fType[10]=16, TStreamerBasicType, bufpos=4129, arr=0x555a6d967db0, offset=192 ()
StreamerInfoAction, class:TBranch, name=fZipBytes, fType[11]=16, TStreamerBasicType, bufpos=4137, arr=0x555a6d967db0, offset=200 ()
ReadBuffer, class:TBranch, name=fBranches, fType[0]=61, TStreamerObject, bufpos=4145, arr=0x555a6d967db0, offset=208
ReadBuffer, class:TBranch, name=fLeaves, fType[0]=61, TStreamerObject, bufpos=4170, arr=0x555a6d967db0, offset=272
ReadBuffer, class:TLeafF, name=TLeaf, fType[0]=0, TStreamerBase, bufpos=4216, arr=0x555a6c2c8ad0, offset=0
StreamerInfoAction, class:TLeaf, name=TNamed, fType[0]=67, TStreamerBase, bufpos=4222, arr=0x555a6c2c8ad0, offset=0 ()
StreamerInfoAction, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=4228, arr=0x555a6c2c8ad0, offset=0 ()
StreamerInfoAction, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=4238, arr=0x555a6c2c8ad0, offset=16 ()
StreamerInfoAction, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=4244, arr=0x555a6c2c8ad0, offset=40 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TNamed has read 24 bytes
ReadBuffer, class:TLeaf, name=fLen, fType[0]=23, TStreamerBasicType, bufpos=4250, arr=0x555a6c2c8ad0, offset=68
StreamerInfoAction, class:TLeaf, name=fIsRange, fType[2]=18, TStreamerBasicType, bufpos=4262, arr=0x555a6c2c8ad0, offset=80 ()
StreamerInfoAction, class:TLeaf, name=fIsUnsigned, fType[3]=18, TStreamerBasicType, bufpos=4263, arr=0x555a6c2c8ad0, offset=81 ()
ReadBuffer, class:TLeaf, name=fLeafCount, fType[0]=64, TStreamerObjectPointer, bufpos=4264, arr=0x555a6c2c8ad0, offset=88
ReadBuffer, class:TLeafF, name=fMinimum, fType[0]=25, TStreamerBasicType, bufpos=4268, arr=0x555a6c2c8ad0, offset=112
Info in <TBufferFile::ReadClassBuffer>: For class: TLeafF has read 62 bytes
ReadBuffer, class:TBranch, name=fBaskets, fType[0]=61, TStreamerObject, bufpos=4276, arr=0x555a6d967db0, offset=336
ReadBuffer, class:TBranch, name=fBasketBytes, fType[0]=43, TStreamerBasicPointer, bufpos=4533, arr=0x555a6d967db0, offset=400
ReadBuffer, class:TBranch, name=fBasketEntry, fType[0]=56, TStreamerBasicPointer, bufpos=4766, arr=0x555a6d967db0, offset=408
ReadBuffer, class:TBranch, name=fBasketSeek, fType[0]=56, TStreamerBasicPointer, bufpos=5231, arr=0x555a6d967db0, offset=416
StreamerInfoAction, class:TBranch, name=fFileName, fType[18]=65, TStreamerString, bufpos=5696, arr=0x555a6d967db0, offset=464 ()
StreamerInfoAction, class:TBranch, name=TNamed, fType[0]=67, TStreamerBase, bufpos=5711, arr=0x555a6d942580, offset=0 ()
StreamerInfoAction, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=5717, arr=0x555a6d942580, offset=0 ()
StreamerInfoAction, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=5727, arr=0x555a6d942580, offset=16 ()
StreamerInfoAction, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=5734, arr=0x555a6d942580, offset=40 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TNamed has read 28 bytes
ReadBuffer, class:TBranch, name=TAttFill, fType[0]=0, TStreamerBase, bufpos=5743, arr=0x555a6d942580, offset=64
ReadBuffer, class:TAttFill, name=fFillColor, fType[0]=22, TStreamerBasicType, bufpos=5749, arr=0x555a6d9425c0, offset=8
Info in <TBufferFile::ReadClassBuffer>: For class: TAttFill has read 6 bytes
ReadBuffer, class:TBranch, name=fCompress, fType[0]=23, TStreamerBasicType, bufpos=5753, arr=0x555a6d942580, offset=76
StreamerInfoAction, class:TBranch, name=fEntryNumber, fType[3]=16, TStreamerBasicType, bufpos=5769, arr=0x555a6d942580, offset=96 ()
ReadBuffer, class:TBranch, name=fIOFeatures, fType[0]=62, TStreamerObjectAny, bufpos=5777, arr=0x555a6d942580, offset=112
StreamerInfoAction, class:ROOT::TIOFeatures, name=fIOBits, fType[0]=11, TStreamerBasicType, bufpos=5787, arr=0x555a6d9425f0, offset=0 ()
Info in <TBufferFile::ReadClassBuffer>: For class: ROOT::TIOFeatures has read 7 bytes
StreamerInfoAction, class:TBranch, name=fOffset, fType[5]=3, TStreamerBasicType, bufpos=5788, arr=0x555a6d942580, offset=116 ()
ReadBuffer, class:TBranch, name=fMaxBaskets, fType[0]=6, TStreamerBasicType, bufpos=5792, arr=0x555a6d942580, offset=120
StreamerInfoAction, class:TBranch, name=fSplitLevel, fType[7]=3, TStreamerBasicType, bufpos=5796, arr=0x555a6d942580, offset=128 ()
StreamerInfoAction, class:TBranch, name=fEntries, fType[8]=16, TStreamerBasicType, bufpos=5800, arr=0x555a6d942580, offset=176 ()
StreamerInfoAction, class:TBranch, name=fFirstEntry, fType[9]=16, TStreamerBasicType, bufpos=5808, arr=0x555a6d942580, offset=184 ()
StreamerInfoAction, class:TBranch, name=fTotBytes, fType[10]=16, TStreamerBasicType, bufpos=5816, arr=0x555a6d942580, offset=192 ()
StreamerInfoAction, class:TBranch, name=fZipBytes, fType[11]=16, TStreamerBasicType, bufpos=5824, arr=0x555a6d942580, offset=200 ()
ReadBuffer, class:TBranch, name=fBranches, fType[0]=61, TStreamerObject, bufpos=5832, arr=0x555a6d942580, offset=208
ReadBuffer, class:TBranch, name=fLeaves, fType[0]=61, TStreamerObject, bufpos=5857, arr=0x555a6d942580, offset=272
ReadBuffer, class:TLeafO, name=TLeaf, fType[0]=0, TStreamerBase, bufpos=5903, arr=0x555a6d955e00, offset=0
StreamerInfoAction, class:TLeaf, name=TNamed, fType[0]=67, TStreamerBase, bufpos=5909, arr=0x555a6d955e00, offset=0 ()
StreamerInfoAction, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=5915, arr=0x555a6d955e00, offset=0 ()
StreamerInfoAction, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=5925, arr=0x555a6d955e00, offset=16 ()
StreamerInfoAction, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=5932, arr=0x555a6d955e00, offset=40 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TNamed has read 26 bytes
ReadBuffer, class:TLeaf, name=fLen, fType[0]=23, TStreamerBasicType, bufpos=5939, arr=0x555a6d955e00, offset=68
StreamerInfoAction, class:TLeaf, name=fIsRange, fType[2]=18, TStreamerBasicType, bufpos=5951, arr=0x555a6d955e00, offset=80 ()
StreamerInfoAction, class:TLeaf, name=fIsUnsigned, fType[3]=18, TStreamerBasicType, bufpos=5952, arr=0x555a6d955e00, offset=81 ()
ReadBuffer, class:TLeaf, name=fLeafCount, fType[0]=64, TStreamerObjectPointer, bufpos=5953, arr=0x555a6d955e00, offset=88
StreamerInfoAction, class:TLeafO, name=fMinimum, fType[1]=18, TStreamerBasicType, bufpos=5957, arr=0x555a6d955e00, offset=112 ()
StreamerInfoAction, class:TLeafO, name=fMaximum, fType[2]=18, TStreamerBasicType, bufpos=5958, arr=0x555a6d955e00, offset=113 ()
Info in <TBufferFile::ReadClassBuffer>: For class: TLeafO has read 58 bytes
ReadBuffer, class:TBranch, name=fBaskets, fType[0]=61, TStreamerObject, bufpos=5959, arr=0x555a6d942580, offset=336
ReadBuffer, class:TBranch, name=fBasketBytes, fType[0]=43, TStreamerBasicPointer, bufpos=6048, arr=0x555a6d942580, offset=400
ReadBuffer, class:TBranch, name=fBasketEntry, fType[0]=56, TStreamerBasicPointer, bufpos=6113, arr=0x555a6d942580, offset=408
ReadBuffer, class:TBranch, name=fBasketSeek, fType[0]=56, TStreamerBasicPointer, bufpos=6242, arr=0x555a6d942580, offset=416
StreamerInfoAction, class:TBranch, name=fFileName, fType[18]=65, TStreamerString, bufpos=6371, arr=0x555a6d942580, offset=464 ()
ReadBuffer, class:TTree, name=fLeaves, fType[0]=61, TStreamerObject, bufpos=6372, arr=0x555a6d864fe0, offset=408
ReadBuffer, class:TTree, name=fAliases, fType[0]=64, TStreamerObjectPointer, bufpos=6413, arr=0x555a6d864fe0, offset=472
ReadBuffer, class:TTree, name=fIndexValues, fType[0]=62, TStreamerObjectAny, bufpos=6417, arr=0x555a6d864fe0, offset=496
ReadBuffer, class:TTree, name=fIndex, fType[0]=62, TStreamerObjectAny, bufpos=6421, arr=0x555a6d864fe0, offset=520
ReadBuffer, class:TTree, name=fTreeIndex, fType[0]=64, TStreamerObjectPointer, bufpos=6425, arr=0x555a6d864fe0, offset=544
ReadBuffer, class:TTree, name=fFriends, fType[0]=64, TStreamerObjectPointer, bufpos=6429, arr=0x555a6d864fe0, offset=552
ReadBuffer, class:TTree, name=fUserInfo, fType[0]=64, TStreamerObjectPointer, bufpos=6433, arr=0x555a6d864fe0, offset=576
ReadBuffer, class:TTree, name=fBranchRef, fType[0]=64, TStreamerObjectPointer, bufpos=6437, arr=0x555a6d864fe0, offset=600
Info in <TClass::GetListOfMethods>: Header Parsing - Asking for all the methods of class TAttMarker: this can involve parsing.
Info in <TClass::GetListOfMethods>: Header Parsing - Asking for all the methods of class TAttFill: this can involve parsing.
Info in <TClass::GetListOfMethods>: Header Parsing - Asking for all the methods of class TAttLine: this can involve parsing.
Info in <TClass::GetListOfMethods>: Header Parsing - Asking for all the methods of class TObject: this can involve parsing.
Info in <TClass::GetListOfMethods>: Header Parsing - Asking for all the methods of class TNamed: this can involve parsing.
Info in <TClass::GetListOfMethods>: Header Parsing - Asking for all the methods of class TTree: this can involve parsing.
Module 'Core' already loaded for 'TInterpreter'
Module 'Core' already loaded for 'TInterpreter'
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TGWin32
Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for vpClingValue
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for vpClingValue
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for vpClingValue

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for __cling_Un1Qu331
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for __cling_Un1Qu331
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for __cling_Un1Qu331

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

TClass::GetClass: Header Parsing - The representation of TNamedEditor was not found in the type system. A lookup in the interpreter is about to be tried: this can cause parsing. This can be avoided selecting TNamedEditor in the linkdef/selection file.
Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TNamedEditor
TEnum::GetEnum: Header Parsing - The enumerator TNamedEditor is not known to the typesystem: an interpreter lookup will be performed. This can imply parsing of headers. This can be avoided selecting the numerator in the linkdef/selection file.
Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TNamedEditor
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TNamedEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TNamedEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

TClass::GetClass: Header Parsing - The representation of TObjectEditor was not found in the type system. A lookup in the interpreter is about to be tried: this can cause parsing. This can be avoided selecting TObjectEditor in the linkdef/selection file.
Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TObjectEditor
TEnum::GetEnum: Header Parsing - The enumerator TObjectEditor is not known to the typesystem: an interpreter lookup will be performed. This can imply parsing of headers. This can be avoided selecting the numerator in the linkdef/selection file.
Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for TObjectEditor
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TObjectEditor
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for TObjectEditor

Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for TGWin32
Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for kMaxEntries
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for kMaxEntries
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for kMaxEntries

Info in <TInterpreter::TCling::AutoParse>: Trying to autoparse for kMaxEntries
Info in <TInterpreter::TCling::AutoLoad>: Trying to autoload for kMaxEntries
Info in <TInterpreter::TCling::AutoParse>: Starting autoparse for kMaxEntries

ferdymercury avatar Jul 01 '24 17:07 ferdymercury

thanks for the report @ferdymercury . I added in the loop @bellenot who might have an idea on how to move forward.

dpiparo avatar Aug 15 '24 09:08 dpiparo

@dpiparo Well, since it's in the interpreter generated code, and not in the GUI per se, I don't know how to fix it, but I can try to have a look if you want. And note that this is most probably also the case for every methods annotated with // *MENU* (and maibe also // *SIGNAL*? ) and containing a constant like kMaxEntries. And this is more for @pcanal or any meta/interpreter expert, if you know any 😉

bellenot avatar Aug 15 '24 10:08 bellenot

Oneliner reproducer in batch mode:

Fails:

root -l -e 'TTree* t = new TTree("t","tree"); bool event_pileup_flag; ULong64_t event_time; t->Branch("time", &event_time, "time/l"); t->Branch("pileup", &event_pileup_flag, "pileup/O"); event_time=1; event_pileup_flag=false; t->Fill(); event_time=2; event_pileup_flag=true; t->Fill(); gInterpreter->Execute(t, t->IsA(), "Scan", "\"time\",\"pileup==1\",\"\",(Long64_t)kMaxEntries,(Long64_t)0");' -b -q

Works:

root -l -e 'TTree* t = new TTree("t","tree"); bool event_pileup_flag; ULong64_t event_time; t->Branch("time", &event_time, "time/l"); t->Branch("pileup", &event_pileup_flag, "pileup/O"); event_time=1; event_pileup_flag=false; t->Fill(); event_time=2; event_pileup_flag=true; t->Fill(); gInterpreter->Execute(t, t->IsA(), "Scan", "\"time\",\"pileup==1\",\"\",(Long64_t)100,(Long64_t)0");' -b -q

Problem seems to be in LookupHelper::findFunctionArgs

ferdymercury avatar Nov 25 '24 10:11 ferdymercury

Maybe related: https://its.cern.ch/jira/browse/ROOT-7530

ferdymercury avatar Feb 17 '25 17:02 ferdymercury