Error in <TProofServLite::HandleSocketInput>

Hello,

I am trying to learn how large output files are treated in PROOF. I followed the instructions on the PROOF web pages but my program still crashes during the file merging. If I look at the log file there is this error:

Error in TProofServLite::HandleSocketInput: retrieving message from input socket

I use PROOF-Lite on my laptop with two cores and with ROOT 30/00 installed. My selector has these attributes:

TProofOutputFile *m_ProofFile;
TFile *m_largeOutFile;

and in SlaveBegin I do:

TString option = GetOption();
m_ProofFile = new TProofOutputFile(“SimpleNtuple.root”, “M”);
TDirectory *savedir = gDirectory;
m_largeOutFile = m_ProofFile->OpenFile(“RECREATE”);
if (m_largeOutFile && m_largeOutFile->IsZombie()) SafeDelete(m_largeOutFile);
savedir->cd();
if (!m_largeOutFile) {
Info(“SlaveBegin”, “could not create ‘%s’: instance is invalid!”, m_ProofFile->GetName());
return;
}
m_tree=new TTree(“simpleTree”,“simpleTree”);
m_tree->Branch(“NParticles”,&m_NParticles);
m_tree->SetDirectory(m_largeOutFile);

In the Process method I just fill the tree with a few numbers. In SlaveTerminate I do:

if (m_largeOutFile) {
std::cout << " output file" << m_largeOutFile->GetName() << std::endl;
TDirectory *savedir = gDirectory;
m_largeOutFile->cd();
m_tree->Write();
m_ProofFile->Print();
fOutput->Add(m_ProofFile);
m_tree->SetDirectory(0);
gDirectory = savedir;
m_largeOutFile->Close();
}
else{
std::cout << "!!!file not open!!! " << std::endl;
}

Please, could you tell me what is wrong? Thank you in advance,

Vojtech Pleskot

Hi,

There was a problem in 5-30 and previous version affecting merging-via-file in PROOF-Lite.
This was fixed in 5-30-patches and is included in 5-30-01 tagged on Aug 18, 2011.
Binaries are available at /afs/cern.ch/sw/lcg/app/releases/ROOT/5.30.01/ , the source tarball at
ftp://root.cern.ch/root/root_v5.30.01.source.tar.gz .

Please try and report back.

G.Ganis

Hello,

thank you very much for your reply. I installed the root version 5-30-01 and everything works fine.
Best regards,

Vojtech Pleskot