Warning in <TStreamerInfo::Build:>

Dear ROOTers

Can you explain what the following warning means and what the reason might be to get this warning:

Warning in <TStreamerInfo::Build:>: TStreamerBase: base class TStreamerElement has no streamer or dictionary it will not be saved

This message was reported by a user of my program, who is running my program on WinXP and NTFS as file system.

The user has a root file containing 320 trees, and each tree is then read into an array which is used for background
correction and normalization with the results stored in a new root file as background tree, background-corrected
tree and normalized tree, resulting in 960 trees in the new root file. Afterwards the normalized trees should be
used for further processing and the results stored in further 320 trees. However, at this step the user gets the
warning message shown above and the program crashes.

Interestingly, when he is using only a subset of few trees everything works as expected. The problem seems to be
that the size of the root file containing the 960 trees is already 5GB, and the program is either not able to read
the normalized trees or it is not able to write the additional processed trees to the root file.

Do you have any hint what the message can tell me about the problem?

Could it be that WinXP cannot handle large root files?
(The reason for this question is that another user could process 23,000 trees on his Mac using the same program.)

Best regards
Christian

Hi Christian,

The dictionary for TStreamerElement is loaded as part of libRIO and thus is always available when doing I/O. I suspect the problem is a memory over-write of some sort (if the problem was on linux, I would have recommended to run the program under valgrind).

Philippe.

Dear Philippe,

Thank you for this information, however the problem is on WinXP, and using valgrind I had (hopefully) eliminated all memory leaks.
Furthermore, with your help, I could eliminate all memory increases by using DropBaskets(), which allowed another user to handle
23,000 trees on his Mac w/o memory increase. Could DropBasketes() cause the problem on WinXP?

Best regards
Christian

Hi,

DropBasket should be working as well on Windows as on Linux. What am I thinking about is not a memory leak but a memory overwrite (i.e. guessing at what might be ‘breaking’ the content of the ROOT TClass objects) … another difference between windows and linux and that Windows stack is typically not as large as the stack on linux ; i.e. you can not recurse as much on windows …

Philippe.

PS. Are you able to reproduce the problem yourself?

Dear Philippe,

I understand. My program does not use the stack extensively, but I do not know whether the stack usage of ROOT increases
with the number of trees.
No I have never tried to run as many samples on WinXP, since I am running WinXP using VMware Fusion on my MacBookPro.

Best regards
Christian

[quote]but I do not know whether the stack usage of ROOT increases
with the number of trees. [/quote]The stack usage does not increase (however the heap usage does).

[quote]No I have never tried to run as many samples on WinXP, since I am running WinXP using VMware Fusion on my MacBookPro. [/quote]Unfortunately I don’t any other means to make progress on this than trying to reproduce it …

Cheers,
Philippe.

Dear Philippe,

Thank you, at the moment you could at least give me a hint.
My program has a couple of options and I have asked the user to try some of these options, I will see.

Best regards
Christian

Hi Christian,

Unfortunately, I can not come up with a good guess on the origin of this problem :frowning: [Well the only one would be a problem with library loading/initialization order but this should not really apply in this case]

Cheers,
Philippe.

Dear Philippe,

Thank you for trying to help.
At the moment the user has switched from WinXP to Linux and there everything works.
I hope that he will find some time to retry on WinXP. I have suggested to completely re-install root
since I have the feeling that something went wrong with his installation of root.

Best regards
Christian

Hello,

I am also getting this warning. Have there been any recommendations lately?
It is a similar situation. I have an initial file (several GBs in size) with some trees in it,
which then is read by a program. The program outputs trees to newly created files at the end of the process.

I use Mac 10.7.5. May try on linux for comparison in the future.

Regards

Yerbol

Hi Yerbol,

Do you also see the same problem if you run your example on a subset of the data (to see if it is memory related or configuration related)? Did you connect the output TTree to their ouput file early on (so that you do not have to hold in memory the whole output data for most of the process)?

Philippe.