odd GetEntry error 32 vs. 64 kernel, same 32bit build

From: Robert Hatcher <rhatcher_at_fnal.gov>
Date: Tue, 23 Mar 2010 13:14:09 -0500

A user is reporting getting messages of the form:

Error in <TBranch::GetBasket>: File: test_input.root at byte:0, branch:spillserver.gpserror, entry:3987, badread=0, nerrors=1, basketnumber=1

when processing a file:

$ file test_input.root

test_input.root: ROOT file Version 52000 (Compression: 1)

using the script:

#include "Riostream.h"
#include "TChain.h"

void readtest(){

   TChain* chain = new TChain("ntuple");    chain->Add("test_input.root");

   // Long64_t nentries = chain->GetEntriesFast();    int nent = chain->GetEntries();
   Long64_t nbytes = 0, nb = 0;
   for (Long64_t jentry=0; jentry<nent;jentry++) {

     nb = chain->GetEntry(jentry);   nbytes += nb;
     if (jentry%1000==0) cout<<jentry<<"/"<<nent<<endl;
   }
}

using ROOT build from SVN "trunk" as of last night. It was built on:

$ uname -a

Linux minos12.fnal.gov 2.6.9-89.0.20.ELsmp #1 SMP Tue Feb 2 20:15:12 CST 2010 i686 i686 i386 GNU/Linux
$ cat /etc/redhat-release

Scientific Linux Fermi LTS release 4.4 (Wilson)

and running on that machine is fine. But running the _exact_ same ROOT binary & libraries on:

$ uname -a

Linux minos27.fnal.gov 2.6.9-89.0.20.ELsmp #1 SMP Tue Feb 2 14:13:40 CST 2010 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/redhat-release

Scientific Linux SL release 4.7 (Beryllium)

This implies some kind of skew due to running on a 64-bit kernel node (relative to having built on a 32-bit one). Possibly an uninitialized value somewhere?

I've tried a v5.26/00b build of ROOT (again built on 32-bit kernel) and don't have issues when run on either platform.

The script and test file can be found at:

     /afs/fnal.gov/files/data/minos/d171/roottest

-robert

Robert W. Hatcher | rhatcher_at_fnal.gov 630-840-3102 FNAL CD/REX (MINOS) | MS 220, PO Box 500, Batavia IL 60510 Received on Tue Mar 23 2010 - 19:14:17 CET

This archive was generated by hypermail 2.2.0 : Wed Mar 24 2010 - 17:50:01 CET