Print

Print


Hi Sami,

  for the setenv, I am sorry, I mistyped. The method os gEnv->SetValue, 
with capitals.

  I digged into TXNetFile together with Gerri. That 999999 is a very naive 
way to deal with staging timeouts with certain systems, but it's off by 
default.

  For the corrupted file, I am not aware of ways to see if a file is 
corrupted or not without opening it. A quick check could be to verify the 
size of the file against the one that it should have (maybe in some 
external metadata db).

  In your case, probably ROOT tries to recover the file but cannot write to 
your storage, or some other problem occurs. Typically the TFile automatic 
recovery option should be off if you do not want to trigger that long 
process. I know, it's on by default, e.g. in Alice we switched it off only 
quite recently.

  Fabrizio

Sami Lehti wrote:
> On Wed, 2 Apr 2008, Fabrizio Furano wrote:
> 
>> Hi Sami,
>>
>> [CC-ed the message to xrootd-l]
>>
>> I really do not understand what you mean with "default timeout 
>> 999999999 secs", I've never heard anything about this. Could you 
>> please be more specific?
> I was digging the TXNetFile code in hope of a solution, and i found this:
> TXNetFile::CreateXClient
> // Set the timeout (default 999999999 secs, i.e. far, far in the future)
>    gSystem->Setenv("XRDCLIENTMAXWAIT", Form("%d",TFile::GetOpenTimeout()));
> 
> 
>> Have you verified that the file is not corrupted?
> The file is corrupted, i checked that by copying the file from the 
> dCache server. How can i check if it is corrupted without opening the file?
> It seems that TFile::Open("corruptedFile.root") works, but 
> TFile::Open("root://.../corruptedFile.root") hangs.
> 
>> If you are sure about those, to give some support I need a logfile 
>> telling me what's happening, possibly done with the latest ROOT 
>> (should be 5.19.02b, which bundles very recent stuff).
> I'm using root version 5.18.00, retried with 5.19.02, i couldnt find 
> 5.19.02b in /afs/cern.ch/sw/lcg/external/root
> 
> Same effect with 5.19.02 also.
> 
>> gEnv->setValue("XNet.Debug", 3)    [this switches the XrdClient debug ON]
> I couldnt get this working:
> root [0]
> Processing test.cxx...
> Error: Can't call TEnv::setValue("XNet.Debug",3) in current scope 
> test.cxx:2:
> Possible candidates are...
> *** Interpreter error recovered ***
> root [1] .q
> 
> I've copied the test.cxx in my public 
> /afs/cern.ch/user/s/slehti/public/test.cxx
> The dCache data is world readable, so anyone can try the script.
> 
> Cheers,
> Sami