elaird / supy

analyze events stored in TTrees in parallel
8 stars 7 forks source link

skip warnings in master::mergeFunc cleanUp #70

Closed gerbaudo closed 12 years ago

gerbaudo commented 12 years ago

The ATLAS pyROOT setup causes these warnings

Warning in TEnvRec::ChangeValue: duplicate entry <Library.vector=vector.dll vectorbool.dll> for level 0; ignored

that end up in stderr and make supy crash when doing 'assert (stderr in okList)'. Right now I don't know any easy way to avoid these warnings...also this is an ATLAS-specific thing, so please feel free to ignore this pull request if you think it's not useful. Thanks! davide

betchart commented 12 years ago

Hi Davide,

Can you post some examples of the error messages? If it is always the same, we can just add it to okList.

gerbaudo commented 12 years ago

Hi Burt,

I pasted an example here: http://pastebin.com/bQGaLP05 (you can see the printout of 'stderr' around L46). Basically it's always the same warning, but several times (once for each different type). I realized now that my solution is not a nice one: with this modification, a real error could be hidden and skipped... BTW happy 2012!

betchart commented 12 years ago

Do you know what it looks like when you have a true error? Are these fake errors all jumbled up in the output, or are they well separated?

Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<bool>=vector.dll vectorbool.dll> for level 0; ignored Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<char>=vector.dll vectorbool.dll> for level 0; ignored Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<short>=vector.dll vectorbool.dll> for level 0; ignored Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<long>=vector.dll vectorbool.dll> for level 0; ignored Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<unsigned-char>=vector.dll vectorbool.dll> for level 0; ignored Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<unsigned-short>=vector.dll vectorbool.dll> for level 0; ignored Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<unsigned-int>=vector.dll vectorbool.dll> for level 0; ignored Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<unsigned-long>=vector.dll vectorbool.dll> for level 0; ignored Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<float>=vector.dll vectorbool.dll> for level 0; ignored Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<double>=vector.dll vectorbool.dll> for level 0; ignored

gerbaudo commented 12 years ago

I don't know what a real error looks like. I see that when everything is OK there are only lines like these ones in the stderr, and they are all together (on consecutive lines). I believe that they are thrown when root is about to write out a file and it loads the dictionaries (which probably had been already defined somewhere else...probably related to some AutoDict black magic).

betchart commented 12 years ago

In that case I think you just need to add another entry into the okList. Unfortunately, this entry is quite long.

gerbaudo commented 12 years ago

Hi Burt, thanks for the suggestion, done.