In the member function
authorhristov <Peter.Hristov@cern.ch>
Mon, 8 Dec 2014 14:18:37 +0000 (15:18 +0100)
committerhristov <Peter.Hristov@cern.ch>
Mon, 8 Dec 2014 14:18:37 +0000 (15:18 +0100)
GetLHCPeriodAgainstAlienFile a TUUID object is used to ensure
uniqueness of the target filename of the XML file to download.
However, TUUID is really only unique across hosts - not on the
same host.  IF the above member function is executed by parallel
PROOF-Lite (same host) slaves at roughly the same time, they
will all get the same TUUID.  The solution is to use
TSystem::TempDirectory to get a unique (to the system)
directory.  In fact, one can do away with the TUUID altogether,
because all we need is a unique file name _on_ _the_ _system_ -
not world unique.

Christian Holm

STEER/CDB/AliCDBManager.cxx

index 489164e..7f45849 100644 (file)
@@ -788,7 +788,8 @@ void AliCDBManager::GetLHCPeriodAgainstAlienFile(Int_t run, TString& lhcPeriod,
     }
   }
   TUUID uuid;
-  TString rndname = "/tmp/";
+  TString rndname = gSystem->TempDirectory(); // "/tmp/";
+  rndname += "/";
   rndname += "OCDBFolderXML.";
   rndname += uuid.AsString();
   rndname += ".xml";