TEventList and Proof

Hi,

I am using Root 5.22, and have the following Problem using an TEntryList with root:
This works:

ControlSample0->Draw(">>elist","Mu_N>=2","entrylist")
>85804
TEntryList * entrylist = elist
ControlSample0->SetEntryList(entrylist)
ControlSample0->Draw("Mu_N")   
>85804

Now I switch on Proof:

TProof * p = new TProof("ebke@etpopt02:1093")
ControlSample0->SetProof()
ControlSample0->Draw("Mu_N")
>Looking up for exact location of files: OK (49 files)                 
>Looking up for exact location of files: OK (49 files)                 
>Validating files: OK (49 files)                 
>Warning in <TProofPlayerRemote::Finalize>: current TQueryResult object is undefined!

No plot was acutally printed. The worker logs are clean, the master Log shows this:

14:48:46 16962 Mst-0 | Info in <TXProofServ::SetQueryRunning>: starting query: 1
14:48:50 16962 Mst-0 | Info in <TPacketizerAdaptive::TPacketizerAdaptive>: no valid or non-empty file found: setting invalid
14:48:50 16962 Mst-0 | Error in <TProofPlayerRemote::InitPacketizer>: instantiated packetizer object 'TPacketizerAdaptive' is invalid
14:48:50 16962 Mst-0 | Error in <TProofPlayerRemote::Process>: cannot init the packetizer

Now, if I restart ROOT, and try generating the TEventList on Proof, it also does not work:

TProof * p = new TProof("ebke@etpopt02:1093")
tds = new TDSet(*ControlSample0)
tds->Draw(">>elist", "Mu_N>=2","entrylist")
>85804
entrylist = (TEntryList *) p->GetOutputList()->FindObject("elist")
tds->SetEntryList(entrylist)
tds->Draw("Mu_N")
>Looking up for exact location of files: OK (49 files)                 
>Files with entries to be processed: 0 (out of 49)
>Validating files: OK (49 files)         
ControlSample0->SetEntryList(entrylist)
Error in <TChain::SetEntryList>: No list found for the trees in this chain

So both using the remote eventlist for remote processing and for local processing do not work.

One possible problem I could identify is that the eventlist generated locally has entrylist->GetLists()->At(0)->Print():

ControlSample0 /home/.../file.root

while the one generated by root has:

ControlSample0 file:///home/.../file.root

Do you have suggestions how to avoid or circumvent this problem?

Thanks,
Johannes

Hi Johannes,

For some reason PROOF can not find any of the files from the TDSet after the entry list is applied.

Does the “ebke@etpopt02:1093” machine share the filesystem with the PROOF client machine?

As far as I understand the processing of the same TDSet with PROOF works fine if the entrylist is not set and also if you define a cut like this:

tds->Draw(">>elist", "Mu_N>=2","entrylist")
Is that correct?

Best,
Jan

Dear Johannes,

Sorry for the somewhat late action.
Support for entry lists in PROOF was clearly buggy; I have found and fixed in SVN a couple of bugs.
Now it should work.
However, as they are now, entry lists are not relocatable with absolute paths.
So, if on the PROOF cluster the files have a different path, the info will not be found.
An automatic way to relocate the list needs to be implemented.

Are you in position to try the SVN trunk?
I can port the fixes in PROOF on the 5-22-00-patches branch so that they can be available in the next 5-22 patch release.

G. Ganis

Hi Ganis,

Thank you for implementing the changes, I am now getting around to trying it again :slight_smile:

Yes, the cluster luckily shares a file system with the client machines, but another cluster that we plan to use does not, so relocation would be nice!

Has this made it into the 00a patch release, or should I still try SVN?

Many thanks,
Johannes

Dear Johannes,

The fixes are in the trunk and in 5-22-00-patches, which will become 5.22.00b end of this week (or so), for the next LCG release.

Gerri