22#include "RConfigure.h" 
   46#if (defined(__FreeBSD__) && (__FreeBSD__ < 4)) || \ 
   47    (defined(__APPLE__) && (!defined(MAC_OS_X_VERSION_10_3) || \ 
   48     (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_3))) 
   50#define lockf(fd, op, sz)   flock((fd), (op)) 
   52#define F_LOCK             (LOCK_EX | LOCK_NB) 
   55#define F_ULOCK             LOCK_UN 
   87#include "compiledata.h" 
  127asm(
".desc ___crashreporter_info__, 0x10");
 
  165   Printf(
"Received SIGTERM: terminating");
 
 
  257         Error(
"TProofServLogHandler", 
"executing command in pipe");
 
  261      Error(
"TProofServLogHandler",
 
  262            "undefined command (%p) or socket (%p)", (
int *)
cmd, s);
 
 
  280      Error(
"TProofServLogHandler", 
"undefined file (%p) or socket (%p)", 
f, s);
 
 
  318         } 
else if (
fgPfx.Length() > 0) {
 
 
  361         Error(
"TProofServLogHandlerGuard",
"invalid handler");
 
  365         Error(
"TProofServLogHandlerGuard",
"undefined command");
 
 
  381         Error(
"TProofServLogHandlerGuard",
"invalid handler");
 
  385         Error(
"TProofServLogHandlerGuard",
"undefined file");
 
 
  419      printf(
"TShutdownTimer::Notify: checking activity on the input socket\n");
 
  427                  (
Long_t)(
now.GetNanoSec() - 
ts.GetNanoSec()) / 1000000 ;
 
  429         printf(
"TShutdownTimer::Notify: input socket: %p: did not show any activity" 
  430                         " during the last %d mins: aborting\n", 
xs, 
fTimeout);
 
  436            printf(
"TShutdownTimer::Notify: input socket: %p: show activity" 
  437                   " %ld secs ago\n", 
xs, 
dt / 60000);
 
 
  467      spid.Form(
"%d", pid);
 
 
  491         pid = 
_cwait(&status, (intptr_t)
p->GetVal(), 0);
 
  493         if (pid > 0 && pid == 
p->GetVal()) {
 
 
  517   Info (
"Notify", 
"session idle for more then %lld secs: terminating", 
Long64_t(
fTime)/1000);
 
  523         Warning(
"Notify", 
"problems updating session status (errno: %d)", -
uss_rc);
 
  527         msg.Form(
"\n//\n// PROOF session at %s (%s) terminated because idle for more than %lld secs\n" 
  528                  "// Please IGNORE any error message possibly displayed below\n//",
 
  531         msg.Form(
"\n//\n// PROOF session at %s (%s) terminated because idle for more than %lld secs\n//",
 
  539      Warning(
"Notify", 
"fProofServ undefined!");
 
 
  566      Printf(
"proofserv: command line testing: OK");
 
  601         Warning(
"TProofServ", 
"requested memory fraction threshold to stop processing" 
  602                               " (MemStop) out of range [0,1] - ignoring");
 
  606         Warning(
"TProofServ", 
"requested memory fraction threshold for warning and finer monitoring" 
  607                               " (MemHWM) out of range [0,MemStop] - ignoring");
 
  627      Error(
"TProofServ", 
"Must have at least 1 arguments (see  proofd).");
 
  715   if (!
logmx.IsNull()) {
 
  717      if (!
logmx.IsDigit()) {
 
  718         if (
logmx.EndsWith(
"K")) {
 
  721         } 
else if (
logmx.EndsWith(
"M")) {
 
  724         } 
else if (
logmx.EndsWith(
"G")) {
 
  729      if (
logmx.IsDigit()) {
 
  735         Warning(
"TProofServ", 
"bad formatted log file size limit ignored: '%s'", 
logmx.Data());
 
  751   if (!(
slog.IsNull())) {
 
  752      if (
slog.IsDigit()) {
 
  755         char c = (
slog[0] == 
'M' || 
slog[0] == 
'm') ? 
'm' : 
'a';
 
  756         c = (
slog[0] == 
'W' || 
slog[0] == 
'w') ? 
'w' : 
c;
 
  763               Warning(
"TProofServ", 
"request for syslog logging ineffective!");
 
  781      Info(
"TProofServ", 
"automatic schema evolution in TMessage explicitly disabled");
 
 
  798      Fatal(
"CreateServer", 
"Invalid socket descriptor number (%d)", sock);
 
  822      Info(
"CreateServer", 
"Service %s ConfDir %s IsMaster %d\n",
 
  919         Error(
"CreateServer", 
"no plugin manager found");
 
  928         Error(
"CreateServer", 
"no plugin found for TProof with a" 
  936      if (
h->LoadPlugin() == -1) {
 
  937         Error(
"CreateServer", 
"plugin for TProof could not be loaded");
 
  949         Error(
"CreateServer", 
"plugin for TProof could not be executed");
 
  972      msg.Form(
"Warning: client version is too old: automatic schema evolution is ineffective.\n" 
  973               "         This may generate compatibility problems between streamed objects.\n" 
  974               "         The advise is to move to ROOT >= 5.21/02 .");
 
  986            Info(
"CreateServer", 
" idle timer started (%d secs)", 
idle_to);
 
  988         Info(
"CreateServer", 
" idle timer not started (no idle timeout requested)");
 
 
 1054   if (time(0) - 
lasttime > (time_t)86400)
 
 1081   if (fd >= 0) close(fd);
 
 
 1094      Error(
"Get", 
"problems sending request");
 
 1112            Error(
"Get", 
"command %d cannot be executed while processing", 
what);
 
 1113         } 
else if (
xrc == -2) {
 
 1114            Error(
"Get", 
"unknown command %d ! Protocol error?", 
what);
 
 
 1132      Info(
"RestartComputeTime", 
"compute time restarted after %f secs (%d entries)",
 
 
 1161         Error(
"GetNextPacket", 
"no progress status object");
 
 1190         Info(
"GetNextPacket",
"cacheSize: %lld, learnent: %d", cacheSize, 
learnent);
 
 1206      Error(
"GetNextPacket",
"Send() failed, returned %d", 
rc);
 
 1214         Warning(
"GetNextPacket", 
"problems saving partial results");
 
 1225         Error(
"GetNextPacket",
"Recv() failed, returned %d", 
rc);
 
 1241               PDB(kLoop, 2) 
Info(
"GetNextPacket", 
"'%s' '%s' '%s' %lld %lld",
 
 1242                                 e->GetFileName(), 
e->GetDirectory(),
 
 1243                                 e->GetObjName(), 
e->GetFirst(),
e->GetNum());
 
 1245               PDB(kLoop, 2) 
Info(
"GetNextPacket", 
"Done");
 
 1255            PDB(kLoop, 2) 
Info(
"GetNextPacket:kPROOF_STOPPROCESS",
"received");
 
 1261               Error(
"GetNextPacket", 
"command %d cannot be executed while processing", 
what);
 
 1262            } 
else if (
xrc == -2) {
 
 1263               Error(
"GetNextPacket", 
"unknown command %d ! Protocol error?", 
what);
 
 
 1286      Printf(
"proofserv: command line testing: OK");
 
 1291      Fatal(
"GetOptions", 
"Must be started from proofd with arguments");
 
 1302      Fatal(
"GetOptions", 
"Must be started as 'proofserv' or 'proofslave'");
 
 1310      Fatal(
"GetOptions", 
"ROOTCONFDIR shell variable not set");
 
 
 1341         Error(
"HandleSocketInput", 
"retrieving message from input socket");
 
 1362               emsg.Form(
"HandleSocketInput: command %d cannot be executed while processing", 
what);
 
 1363            } 
else if (
rc == -3) {
 
 1364               emsg.Form(
"HandleSocketInput: message %d undefined! Protocol error?", 
what);
 
 1366               emsg.Form(
"HandleSocketInput: unknown command %d! Protocol error?", 
what);
 
 1369         } 
else if (
rc == 2) {
 
 1373               Info(
"HandleSocketInput", 
"message of type %d enqueued; sz: %d",
 
 1383               Info(
"HandleSocketInput", 
"processing enqueued message of type %d; left: %d",
 
 1393   } 
catch (std::bad_alloc &) {
 
 1395      exmsg.Form(
"caught exception 'bad_alloc' (memory leak?) %s %lld",
 
 1397   } 
catch (std::exception &
exc) {
 
 1399      exmsg.Form(
"caught standard exception '%s' %s %lld",
 
 1403      exmsg.Form(
"caught exception throwing %d %s %lld",
 
 1405   } 
catch (
const char *str) {
 
 1407      exmsg.Form(
"caught exception throwing '%s' %s %lld",
 
 1411      exmsg.Form(
"caught exception <unknown> %s %lld",
 
 1416   if (!
exmsg.IsNull()) {
 
 1418      Error(
"HandleSocketInput", 
"%s", 
exmsg.Data());
 
 1429      exmsg.Form(
"high-memory footprint detected during Process(...) - terminating");
 
 1430      Error(
"HandleSocketInput", 
"%s", 
exmsg.Data());
 
 1446         SendAsynMessage(
" *** No workers left: cannot continue! Terminating ... *** ");
 
 
 1473   if (!
mess) 
return -3;
 
 1477      Info(
"HandleSocketInput", 
"processing message type %d from '%s'",
 
 1490            mess->ReadString(str, 
sizeof(str));
 
 1500                  Info(
"HandleSocketInput:kMESS_CINT", 
"processing: %s...", str);
 
 1524            mess->ReadString(str, 
sizeof(str));
 
 1532            mess->ReadObject(
mess->GetClass());
 
 1540            mess->ReadString(str, 
sizeof(str));
 
 1550            mess->ReadString(str, 
sizeof(str));
 
 1556               Info(
"HandleSocketInput:kPROOF_LOGLEVEL", 
"debug level set to %d (mask: 0x%x)",
 
 1571         mess->ReadString(str, 
sizeof(str));
 
 1579            mess->ReadString(str, 
sizeof(str));
 
 1587         Warning(
"HandleSocketInput:kPROOF_STATUS",
 
 1588               "kPROOF_STATUS message is obsolete");
 
 1590            Warning(
"HandleSocketInput:kPROOF_STATUS", 
"problem sending of request");
 
 1607                  Info(
"HandleSocketInput:kPROOF_STOP", 
"request for worker %s", 
ord.Data());
 
 1611                  Info(
"HandleSocketInput:kPROOF_STOP", 
"got request to terminate");
 
 1624            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_STOPPROCESS",
"enter");
 
 1631               Info(
"HandleSocketInput:kPROOF_STOPPROCESS",
 
 1646            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_PROCESS",
"enter");
 
 1656            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_SENDOUTPUT",
 
 1657                                 "worker was asked to send output to master");
 
 1660               Error(
"HandleSocketInput:kPROOF_SENDOUTPUT", 
"problems sending output list");
 
 1705               Info(
"HandleSocketInput:kPROOF_MAXQUERIES", 
"Enter");
 
 1717               Info(
"HandleSocketInput:kPROOF_CLEANUPSESSION", 
"Enter");
 
 1721               Printf(
"Session %s cleaned up", 
stag.Data());
 
 1723               Printf(
"Could not cleanup session %s", 
stag.Data());
 
 1733         {  
PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_GETENTRIES", 
"Enter");
 
 1742               PDB(kGlobal, 2) 
Info(
"HandleSocketInput:kPROOF_GETENTRIES",
 
 1743                                    "Report size of object %s (%s) in dir %s in file %s",
 
 1747               PDB(kGlobal, 2) 
Info(
"HandleSocketInput:kPROOF_GETENTRIES",
 
 1748                                    "Found %lld %s", entries, 
isTree ? 
"entries" : 
"objects");
 
 1756            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_GETENTRIES", 
"Done");
 
 1776            mess->ReadString(str, 
sizeof(str));
 
 1787            if (
fnam.BeginsWith(
"cache:")) {
 
 1810                     Info(
"HandleSocketInput",
"forwarding file: %s", 
fnam.Data());
 
 1812                     Error(
"HandleSocketInput", 
"forwarding file: %s", 
fnam.Data());
 
 1826            (*mess) >> start >> end;
 
 1828               Info(
"HandleSocketInput:kPROOF_LOGFILE",
 
 1829                    "Logfile request - byte range: %d - %d", start, end);
 
 1842               if ((
mess->BufferSize() > 
mess->Length()))
 
 1860            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_CACHE",
"enter");
 
 1873                  Warning(
"HandleSocketInput:kPROOF_WORKERLISTS",
 
 1874                        "Action meaning-less on worker nodes: protocol error?");
 
 1885            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_GETSLAVEINFO", 
"Enter");
 
 1899                        Error(
"HandleSocketInput:kPROOF_GETSLAVEINFO",
 
 1900                              "adding a list of worker nodes returned: %d", 
ret);
 
 1903                     Error(
"HandleSocketInput:kPROOF_GETSLAVEINFO",
 
 1904                           "getting list of worker nodes returned: %d", 
retVal);
 
 1930            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_GETSLAVEINFO", 
"Done");
 
 1941            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_GETTREEHEADER", 
"Enter");
 
 1945               p->HandleGetTreeHeader(
mess);
 
 1948               Error(
"HandleSocketInput:kPROOF_GETTREEHEADER", 
"could not create TProofPlayer instance!");
 
 1951            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_GETTREEHEADER", 
"Done");
 
 1961         {  
PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_GETOUTPUTLIST", 
"Enter");
 
 1973                  while ( (o = next()) ) {
 
 1983            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_GETOUTPUTLIST", 
"Done");
 
 1990               Info(
"HandleSocketInput:kPROOF_VALIDATE_DSET", 
"Enter");
 
 1996            else dset->Validate();
 
 2003               Info(
"HandleSocketInput:kPROOF_VALIDATE_DSET", 
"Done");
 
 2013            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_DATA_READY", 
"Enter");
 
 2020               Error(
"HandleSocketInput:kPROOF_DATA_READY",
 
 2021                     "This message should not be sent to slaves");
 
 2025            PDB(kGlobal, 1) 
Info(
"HandleSocketInput:kPROOF_DATA_READY", 
"Done");
 
 2041               Error(
"HandleSocketInput", 
"old client: no or incompatible dataset support");
 
 2066               Info(
"HandleSocketInput:kPROOF_REALTIMELOG",
 
 2067                    "setting real-time logging %s", (
on ? 
"ON" : 
"OFF"));
 
 2090               Error(
"HandleSocketInput", 
"no queries enqueued");
 
 2103                  Error(
"HandleSocketInput", 
"adding a list of worker nodes returned: %d", 
ret);
 
 2116                  Error(
"HandleSocketInput", 
"error getting list of worker nodes");
 
 2118                  Warning(
"HandleSocketInput", 
"query was re-queued!");
 
 2120                  Error(
"HandleSocketInput", 
"unexpected answer: %d", 
retVal);
 
 2141                               " idle or undefined player - ignoring");
 
 2167               smsg.Form(
"Echo response from %s:%s: %s",
 
 2178                  Error(
"HandleSocketInput", 
"Can't redirect output");
 
 2193               smsg.Form(
"*** Echo response from %s:%s ***\n",
 
 2216         Error(
"HandleSocketInput", 
"unknown command %d", 
what);
 
 
 2243   PDB(kSubmerger, 1)  
Info(
"AcceptResults", 
"enter");
 
 2256         Info(
"AcceptResults", 
"interrupt!");
 
 2268               Info(
"AcceptResults", 
"connection from a worker accepted on merger %s ",
 
 2275               Info(
"AcceptResults", 
"spurious signal found of merging socket");
 
 2279            Error(
"AcceptResults", 
"problems receiving message");
 
 2283            Info(
"AcceptResults", 
"message received: %d ", (
mess ? 
mess->What() : 0));
 
 2285            Error(
"AcceptResults", 
"message received: %p ", 
mess);
 
 2291         while ((
mess->BufferSize() > 
mess->Length())) {
 
 2294            PDB(kSubmerger, 2) 
Info(
"AcceptResults", 
" type %d ", 
type);
 
 2298                  Info(
"AcceptResults",
 
 2299                       "a new worker has been mergerd. Total merged workers: %d",
 
 2305               PDB(kSubmerger, 2)  
Info(
"AcceptResults", 
"removing %p (has been merged)", o);
 
 2308               PDB(kSubmerger, 2) 
Info(
"AcceptResults", 
"%p not merged yet", o);
 
 2318      PDB(kSubmerger, 2) 
Info(
"AcceptResults", 
"closing socket");
 
 2326   PDB(kSubmerger, 2) 
Info(
"AcceptResults", 
"exit: %d", 
result);
 
 
 2345      Info(
"HandleUrgentData", 
"handling oob...");
 
 2369            Error(
"HandleUrgentData", 
"error receiving waste");
 
 2374         Error(
"HandleUrgentData", 
"error receiving OOB");
 
 2380      Info(
"HandleUrgentData", 
"got OOB byte: %d\n", 
oob_byte);
 
 2387         Info(
"HandleUrgentData", 
"*** Hard Interrupt");
 
 2404                  Error(
"HandleUrgentData", 
"error sending OOB");
 
 2418               Error(
"HandleUrgentData", 
"error receiving waste (2)");
 
 2428         Info(
"HandleUrgentData", 
"Soft Interrupt");
 
 2435            Error(
"HandleUrgentData", 
"soft interrupt flushed stream");
 
 2446         Info(
"HandleUrgentData", 
"Shutdown Interrupt");
 
 2457         Error(
"HandleUrgentData", 
"unexpected OOB byte");
 
 
 2477         Info(
"HandleSigPipe", 
"keepAlive probe failed");
 
 2486      Info(
"HandleSigPipe", 
"keepAlive probe failed");
 
 
 2530      SysError(
"RedirectOutput", 
"could not freopen stdout (%s)", logfile);
 
 2533      SysError(
"RedirectOutput", 
"could not redirect stderr");
 
 2536      SysError(
"RedirectOutput", 
"could not open logfile '%s'", logfile);
 
 2540      Warning(
"RedirectOutput", 
"no way to tell master (or client) where" 
 2541              " to upload packages");
 
 
 2580   if (
size <= 0) 
return 0;
 
 2585      SysError(
"ReceiveFile", 
"error opening file %s", file);
 
 2608               Int_t k = 0, i = 0, 
j = 0;
 
 2615                  cpy[
j++] = buf[i++];
 
 2619               w = write(fd, 
q, 
r);
 
 2621               w = write(fd, 
p, 
r);
 
 2625               SysError(
"ReceiveFile", 
"error writing to file %s", file);
 
 2633         Error(
"ReceiveFile", 
"error during receiving file %s", file);
 
 2641   if (chmod(file, 0644) != 0)
 
 2642      Warning(
"ReceiveFile", 
"error setting mode 0644 on file %s", file);
 
 
 2694            left = (
Int_t)(end - start);
 
 2706         SysError(
"SendLogFile", 
"error sending kPROOF_LOGFILE");
 
 2720            SysError(
"SendLogFile", 
"error reading log file");
 
 2728            SysError(
"SendLogFile", 
"error sending log file");
 
 2736      } 
while (
len > 0 && left > 0);
 
 2750      SysError(
"SendLogFile", 
"error sending kPROOF_LOGDONE");
 
 2754   PDB(kGlobal, 1) 
Info(
"SendLogFile", 
"kPROOF_LOGDONE sent");
 
 
 2785         Info(
"SendParallel", 
"Will invoke AskParallel()");
 
 2788         Info(
"SendParallel", 
"Will invoke GetParallel()");
 
 
 2814      Error(
"Setup", 
"failed to send proof server startup message");
 
 2822      Error(
"Setup", 
"failed to receive remote proof protocol");
 
 2826      Error(
"Setup", 
"failed to send local proof protocol");
 
 2834         Error(
"Setup", 
"OldAuthSetup: failed to setup authentication");
 
 2853         Error(
"Setup", 
"failed to receive ordinal and config info");
 
 2886         Info(
"Setup", 
"invalid config file %s (missing or unreadable",
 
 2932      Error(
"Setup", 
"common setup failed");
 
 
 2965   if (
paths.Length() > 0) {
 
 2967      if (
paths.Contains(
"^<compiler>"))
 
 2969      else if (
paths.Contains(
"<compiler>"))
 
 2980         } 
else if (
icomp == -1) {
 
 2981            if (!path.
IsNull()) path += 
":";
 
 2987      if (
paths.Contains(
"^<sysbin>"))
 
 2989      else if (
paths.Contains(
"<sysbin>"))
 
 2994            bindir += 
"/bin:/usr/bin:/usr/local/bin";
 
 2995         } 
else if (
isysb == -1) {
 
 2996            if (!path.
IsNull()) path += 
":";
 
 2997            path += 
"/bin:/usr/bin:/usr/local/bin";
 
 3010         Error(
"SetupCommon", 
"can not change to PROOF directory %s",
 
 3019            Error(
"SetupCommon", 
"can not change to PROOF directory %s",
 
 3054   const char *k = (
IsMaster()) ? 
"Mst" : 
"Wrk";
 
 3058      Info(
"SetupCommon", 
"package directory set to %s", 
packdir.Data());
 
 3073         Warning(
"SetupCommon", 
"problems creating path '%s' (errno: %d)",
 
 3092            Info(
"SetupCommon", 
"requested mode for data directories is '%o'", 
m);
 
 3099            if (
subp.IsNull()) 
continue;
 
 3104                     Warning(
"SetupCommon", 
"problems setting mode '%o' on path '%s' (errno: %d)",
 
 3111               Warning(
"SetupCommon", 
"problems stat-ing path '%s' (errno: %d; datadir: %s)",
 
 3124   Info(
"SetupCommon", 
" %d global package directories registered", 
nglb);
 
 3133         Error(
"SetupCommon", 
"can not change to working directory '%s'",
 
 3183      if (!
dsms.IsNull()) {
 
 3186         while (
dsms.Tokenize(
dsm, from, 
",")) {
 
 3188               Warning(
"SetupCommon", 
"a valid dataset manager already initialized");
 
 3189               Warning(
"SetupCommon", 
"support for multiple managers not yet available");
 
 3193            if (
gROOT->GetPluginManager()) {
 
 3195               h = 
gROOT->GetPluginManager()->FindHandler(
"TDataSetManager", 
dsm);
 
 3196               if (
h && 
h->LoadPlugin() != -1) {
 
 3206            Warning(
"SetupCommon", 
"dataset manager plug-in initialization failed");
 
 3207            SendAsynMessage(
"TXProofServ::SetupCommon: dataset manager plug-in initialization failed");
 
 3223            h = 
gROOT->GetPluginManager()->FindHandler(
"TDataSetManager", 
"file");
 
 3224            if (
h && 
h->LoadPlugin() == -1) 
h = 0;
 
 3233            Warning(
"SetupCommon", 
"default dataset manager plug-in initialization failed");
 
 3250                  "failed init of dataset staging requests repository");
 
 3255              "specify, with [dir:]<path>, a valid path for staging requests");
 
 3258         Warning(
"SetupCommon", 
"no repository for staging requests available");
 
 3272      while (
quotas.Tokenize(
tok, from, 
" ")) {
 
 3274         if (
tok.BeginsWith(
"maxquerykept=")) {
 
 3275            tok.ReplaceAll(
"maxquerykept=",
"");
 
 3280                    "parsing 'maxquerykept' :ignoring token %s : not a digit", 
tok.Data());
 
 3283         const char *
ksz[2] = {
"hwmsz=", 
"maxsz="};
 
 3288               if (!
tok.IsDigit()) {
 
 3291                  const char *s[3] = {
"k", 
"m", 
"g"};
 
 3294                     if (
tok.EndsWith(s[i++]))
 
 3299                  tok.Remove(
tok.Length()-1);
 
 3301               if (
tok.IsDigit()) {
 
 3308                  Info(
"SetupCommon", 
"parsing '%s' : ignoring token %s", 
ssz.Data(), 
tok.Data());
 
 3318         Warning(
"SetupCommon", 
"problems applying fMaxQueries");
 
 3325      if (
rtag.Length() > 0)
 
 3338      if (!
name.IsNull()) {
 
 3360      Info(
"SetupCommon", 
"successfully completed");
 
 
 3380      Info(
"Terminate", 
"process memory footprint: %ld/%ld kB virtual, %ld/%ld kB resident ",
 
 3414        Info(
"Terminate", 
"data directory '%s' has been removed", 
fDataDir.
Data());
 
 3421   while ((fh = next())) {
 
 
 3445      const char *
ent = 0;
 
 3465      Warning(
"UnlinkDataDir", 
"data directory '%s' is empty but could not be removed", path);
 
 
 3508         Error(
"OldAuthSetup", 
"can't locate %s",
authlib.Data());
 
 3517         Error(
"OldAuthSetup", 
"can't find OldProofServAuthSetup");
 
 
 3572   Info(
"SetQueryRunning", 
"starting query: %d", pq->
GetSeqNum());
 
 
 3600      Info(
"HandleArchive", 
"Enter");
 
 3611      Info(
"HandleArchive",
 
 3621   if (path.
Length() <= 0) {
 
 3623         Info(
"HandleArchive",
 
 3624              "archive paths are not defined - do nothing");
 
 3628         path.
Form(
"%s/session-%s-%d.root",
 
 3641      fout += 
"/query-result.root";
 
 3659         Info(
"HandleArchive",
 
 3660              "file cannot be open (%s)",
fout.Data());
 
 3667      PDB(kGlobal, 1) 
Info(
"HandleArchive",
 
 3668                           "archive path for query #%d: %s",
 
 3676         Info(
"HandleArchive",
 
 3677              "archive file cannot be open (%s)",path.
Data());
 
 3683      pqr->SetArchived(path);
 
 3685         pqm->SetArchived(path);
 
 3695      Info(
"HandleArchive",
 
 3696           "results of query %s archived to file %s",
 
 
 3716      emsg.Form(
"file collection undefined!");
 
 3729      key.
Form(
"%s://%s", 
xurl->GetProtocol(), 
xurl->GetHostFQDN());
 
 3730      if (
xurl->GetPort() > 0)
 
 
 3759      Info(
"HandleProcess", 
"Enter");
 
 3785      dset->SetEntryList(elist);
 
 3791      if ((!
hasNoData) && 
dset->GetListOfElements()->GetSize() == 0) {
 
 3795            Error(
"HandleProcess", 
"AssertDataSet: %s", 
emsg.Data());
 
 3805            if (!
dsn.Contains(
":") || 
dsn.BeginsWith(
"dataset:")) {
 
 3806               dsn.ReplaceAll(
"dataset:", 
"");
 
 3810                  emsg.Form(
"dataset manager not initialized!");
 
 3815                     emsg.Form(
"requested dataset '%s' does not exists", 
dsn.Data());
 
 3822                        fcmap->SetName(
"PROOF_FilesToProcess");
 
 3827               if (!
emsg.IsNull()) {
 
 3830                  Error(
"HandleProcess", 
"%s", 
emsg.Data());
 
 3847      if (elist) 
input->Add(elist);
 
 3851      input->Clear(
"nodelete");
 
 3856         Warning(
"HandleProcess", 
"could not save input data: %s", 
emsg.Data());
 
 3882            Error(
"HandleProcess", 
"error getting list of worker nodes");
 
 3889            Info(
"HandleProcess", 
"query %d enqueued", pq->
GetSeqNum());
 
 3893               Error(
"HandleProcess", 
"Adding a list of worker nodes returned: %d",
 
 3903            Error(
"HandleProcess", 
"error getting list of worker nodes");
 
 3910            Info(
"HandleProcess", 
"query %d enqueued", pq->
GetSeqNum());
 
 3912            Error(
"HandleProcess", 
"unknown return value: %d", 
retVal);
 
 3931         Info(
"HandleProcess",
 
 3998         Warning(
"HandleProcess", 
"could not get input data: %s", 
emsg.Data());
 
 4002         Warning(
"HandleProcess", 
"could not get query sequential number!");
 
 4006      while ((
nord = 
input->FindObject(
"PROOF_Ordinal")))
 
 4013      while ((o = next())) {
 
 4014         PDB(kGlobal, 2) 
Info(
"HandleProcess", 
"adding: %s", o->
GetName());
 
 4022      while ((obj = 
nxt())){
 
 4026            Info(
"HandleProcess", 
"selector obj for '%s' found", 
selector_obj->ClassName());
 
 4042         Info(
"HandleProcess", 
"calling fPlayer->Process() with selector object: %s", 
selector_obj->ClassName());
 
 4046         Info(
"HandleProcess", 
"calling fPlayer->Process() with selector name: %s", 
filename.Data());
 
 4058            m << status << abort;
 
 4071         Info(
"TProofServ::Handleprocess",
 
 4072              "worker %s has finished processing with %d objects in output list",
 
 4112               Info(
"HandleProcess", 
"controlled mode: worker %s has finished," 
 4119                  Info(
"HandleProcess", 
"submerging disabled because of high-memory case");
 
 4141                     Info(
"HandleProcess", 
"possible port for merging connections: %d",
 
 4159               PDB(kGlobal, 2)  
Info(
"HandleProcess", 
"sending result directly to master");
 
 4161                  Warning(
"HandleProcess",
"problems sending output list");
 
 4183            Warning(
"HandleProcess",
"the output list is empty!");
 
 4185            Warning(
"HandleProcess", 
"problems sending output list");
 
 4202      while ((obj = 
nex())) {
 
 4212         if (
added->GetSize() > 0) {
 
 4218               while ((o = 
nxo())) { 
input->Remove(o); }
 
 4235   PDB(kGlobal, 1) 
Info(
"HandleProcess", 
"done");
 
 
 4246   PDB(kOutput, 2) 
Info(
"SendResults", 
"enter");
 
 4257         msg.Form(
"%s: merging output objects ... done                                     ",
 
 4265         mbuf.WriteObject(pq);
 
 4266         if (sock->
Send(
mbuf) < 0) 
return -1;
 
 4274      while ((o = 
nxo())) {
 
 4278                    "message has %d bytes: limit of %lld bytes reached - sending ...",
 
 4291               msg.Form(
"%s: objects merged; sending obj %d/%d (%d bytes)   ",
 
 4295            if (sock->
Send(
mbuf) < 0) 
return -1;
 
 4317            msg.Form(
"%s: objects merged; sending obj %d/%d (%d bytes)     ",
 
 4321         if (sock->
Send(
mbuf) < 0) 
return -1;
 
 4325         msg.Form(
"%s: grand total: sent %d objects, size: %d bytes                            ",
 
 4337         msg.Form(
"%s: merging output objects ... done                                     ",
 
 4345         mbuf.WriteObject(pq);
 
 4346         if (sock->
Send(
mbuf) < 0) 
return -1;
 
 4353      while ((o = 
nxo())) {
 
 4358         mbuf.WriteObject(o);
 
 4370            msg.Form(
"%s: objects merged; sending obj %d/%d (%d bytes)   ",
 
 4374         if (sock->
Send(
mbuf) < 0) 
return -1;
 
 4379         msg.Form(
"%s: grand total: sent %d objects, size: %d bytes       ",
 
 4388      mbuf.WriteObject(pq);
 
 4395      if (sock->
Send(
mbuf) < 0) 
return -1;
 
 4399         PDB(kGlobal, 2) 
Info(
"SendResults", 
"sending output list");
 
 4401         PDB(kGlobal, 2) 
Info(
"SendResults", 
"notifying failure or abort");
 
 4406   PDB(kOutput,2) 
Info(
"SendResults", 
"done");
 
 
 4458         Error(
"ProcessNext", 
"no TDset object: cannot continue");
 
 4480      while ((obj = 
nxt())){
 
 4484            Info(
"ProcessNext", 
"found object for selector '%s'", obj->
ClassName());
 
 4491      Error(
"ProcessNext", 
"empty waiting queries list!");
 
 4510     << 
dset->GetNumOfFiles()
 
 4537   if (
gEnv->
Lookup(
"Proof.UseMergers") && !
input->FindObject(
"PROOF_UseMergers")) {
 
 4541         PDB(kSubmerger, 2) 
Info(
"ProcessNext", 
"PROOF_UseMergers set to %d", 
smg);
 
 4547               if ((o = 
input->FindObject(
"PROOF_MergersByHost"))) { 
input->Remove(o); 
delete o; }
 
 4549               PDB(kSubmerger, 2) 
Info(
"ProcessNext", 
"submergers setup by host/node");
 
 4558   while ((o = next())) {
 
 4564   if ((o = 
input->FindObject(
"MissingFiles"))) 
input->Remove(o);
 
 4569      Info(
"ProcessNext", 
"calling fPlayer->Process() with selector object: %s", 
selector_obj->ClassName());
 
 4573      Info(
"ProcessNext", 
"calling fPlayer->Process() with selector name: %s", 
filename.Data());
 
 4588         m << status << abort;
 
 4604            Warning(
"ProcessNext", 
"problems registering produced datasets: %s", 
emsg.Data());
 
 4625      while ((
xo = 
nxo())) {
 
 4635            if (
oopt.BeginsWith(
"of:")) {
 
 4636               oopt.Replace(0, 3, 
"");
 
 4647   Info(
"ProcessNext", 
"adding info about dataset '%s' in the light query result", 
dset->GetName());
 
 4654         Info(
"ProcessNext", 
"sending results");
 
 4657         Warning(
"ProcessNext", 
"problems sending output list");
 
 4662         Warning(
"ProcessNext",
"the output list is empty!");
 
 4664         Warning(
"ProcessNext", 
"problems sending output list");
 
 
 4701      ::
Info(
"TProofServ::RegisterDataSets",
 
 4702             "enter: %d objs in the output list", (out ? out->GetSize() : -1));
 
 4704   if (!in || !out || !
dsm) {
 
 4705      ::Error(
"TProofServ::RegisterDataSets", 
"invalid inputs: %p, %p, %p", in, out, 
dsm);
 
 4713   while ((o = 
nxo())) {
 
 4722         if (!(
fcn = (
TNamed *) out->FindObject(tag))) 
continue;
 
 4724         if (
tags.FindObject(tag)) {
 
 4731         if (
regopt.Contains(
":sortidx:")) {
 
 4733            regopt.ReplaceAll(
":sortidx:", 
"");
 
 4738            if (
ds->GetList()->GetSize() > 0) {
 
 4740               const char *
vfmsg = 
regopt.Contains(
"V") ? 
" and verifying" : 
"";
 
 4741               msg.Form(
"Registering%s dataset '%s' ... ", 
vfmsg, 
ds->GetName());
 
 4750                  ::Warning(
"TProofServ::RegisterDataSets",
 
 4751                            "failure registering or verifying dataset '%s'", 
ds->GetName());
 
 4752                  msg.Form(
"Registering%s dataset '%s' ... failed! See log for more details", 
vfmsg, 
ds->GetName());
 
 4754                  ::Info(
"TProofServ::RegisterDataSets", 
"dataset '%s' successfully registered%s",
 
 4756                  msg.Form(
"Registering%s dataset '%s' ... OK", 
vfmsg, 
ds->GetName());
 
 4763                  ::Info(
"TProofServ::RegisterDataSets", 
"printing collection");
 
 4767               ::Warning(
"TProofServ::RegisterDataSets", 
"collection '%s' is empty", o->
GetName());
 
 4770            ::Info(
"TProofServ::RegisterDataSets", 
"dataset registration not allowed");
 
 4777   while ((o = 
nxrm())) out->Remove(o);
 
 4781   while((o = 
nxtg())) {
 
 4783      while ((
oo = out->FindObject(o->
GetName()))) { out->Remove(
oo); }
 
 4787   PDB(kDataset, 1) ::
Info(
"TProofServ::RegisterDataSets", 
"exit");
 
 
 4798      Info(
"HandleQueryList", 
"Enter");
 
 4833            if ((
pqm = 
pqr->CloneInfo())) {
 
 4837               Warning(
"HandleQueryList", 
"unable to clone TProofQueryResult '%s:%s'",
 
 4838                       pqr->GetName(), 
pqr->GetTitle());
 
 
 4861      Info(
"HandleRemove", 
"Enter");
 
 4872      Info(
"HandleRemove", 
"%d queries removed from the waiting list", 
pend);
 
 4883      Info(
"HandleRemove", 
"%d directories removed", nd);
 
 4908      Warning(
"HandleRemove", 
"query result manager undefined!");
 
 4912   Info(
"HandleRemove",
 
 4913        "query %s could not be removed (unable to lock session)", 
queryref.Data());
 
 
 4925      Info(
"HandleRetrieve", 
"Enter");
 
 4938   fout += 
"/query-result.root";
 
 4955                  if ((
d = 
dynamic_cast<TDSet *
>(o)))
 
 4964               static const char *
clb[4] = { 
"bytes", 
"KB", 
"MB", 
"GB" };
 
 4965               while (
qsz > 1000. && 
ilb < 3) {
 
 4974               Info(
"HandleRetrieve",
 
 4975                    "query not found in file %s",
fout.Data());
 
 4985      Info(
"HandleRetrieve",
 
 4986           "file cannot be open (%s)",
fout.Data());
 
 
 5005   (*mess) >> 
type >> add >> path;
 
 5006   if (
mess->BufferSize() > 
mess->Length()) (*mess) >> 
rc;
 
 5009   if ((
type != 
"lib") && (
type != 
"inc")) {
 
 5010      Error(
"HandleLibIncPath",
"unknown action type: %s", 
type.Data());
 
 5019   if (path.
Length() > 0 && path != 
"-") {
 
 5021         Error(
"HandleLibIncPath",
"decomposing path %s", path.
Data());
 
 5028      if (
type == 
"lib") {
 
 5049               Info(
"HandleLibIncPath",
 
 5050                    "libpath %s does not exist or cannot be read - not added", 
xlib.Data());
 
 5073               Info(
"HandleLibIncPath",
 
 5074                    "incpath %s does not exist or cannot be read - not added", 
xinc.Data());
 
 5085      if (
type == 
"lib") {
 
 
 5144   if (
filenam.BeginsWith(
"-")) {
 
 5157               Error(
"HandleCheckFile", 
"failure cleaning %s", 
packnam.Data());
 
 5165               Info(
"HandleCheckFile",
 
 5166                    "package %s installed on node", 
filenam.Data());
 
 5169               Error(
"HandleCheckFile", 
"gunzip not found");
 
 5171               Error(
"HandleCheckFile", 
"package %s did not unpack into %s",
 
 5183            Error(
"HandleCheckFile",
 
 5184                  "package %s not yet on node", 
filenam.Data());
 
 5202            Info(
"HandleCheckFile",
 
 5203                  "problems uploading package %s", 
parpath.Data());
 
 5218                     "problems installing package %s", 
filenam.Data());
 
 5230            Info(
"HandleCheckFile",
 
 5231                 "package %s already on node", 
parname.Data());
 
 5241                          "problems uploading package %s", par.
Data());
 
 5249            Info(
"HandleCheckFile",
 
 5250                 "package %s not yet on node", 
filenam.Data());
 
 5264            Info(
"HandleCheckFile", 
"file %s already on node", 
filenam.Data());
 
 5269            Info(
"HandleCheckFile", 
"file %s not yet on node", 
filenam.Data());
 
 
 5283      Info(
"HandleCache", 
"Enter");
 
 5295   const char *k = (
IsMaster()) ? 
"Mst" : 
"Wrk";
 
 5319         if ((
mess->BufferSize() > 
mess->Length())) (*mess) >> file;
 
 5321         if (file.IsNull() || file == 
"*") {
 
 5329         if (
slb) 
slb->Form(
"%d %s", 
type, file.Data());
 
 5376                       "kBuildPackage: problems forwarding package %s to workers", 
package.Data());
 
 5386                    "kBuildPackage: package %s exists and has PROOF-INF directory", 
package.Data());
 
 5404               Info(
"HandleCache", 
"package %s successfully built", 
package.Data());
 
 5413         if ((
mess->BufferSize() > 
mess->Length())) (*mess) >> 
optls;
 
 5435               Info(
"HandleCache", 
"package %s successfully loaded", 
package.Data());
 
 5443         {  
TString title(
"*** Enabled packages ***");
 
 5445               title.
Form(
"*** Enabled packages on %s %s on %s",
 
 5446                          (
IsMaster()) ? 
"master" : 
"worker",
 
 5465         if ((
mess->BufferSize() > 
mess->Length())) (*mess) >> file;
 
 5468         if (
slb) 
slb->Form(
"%d %s", 
type, file.Data());
 
 5561            Info(
"HandleCache", 
"loading macro %s ...", 
pack.Data());
 
 5580         Error(
"HandleCache", 
"unknown type %d", 
type);
 
 
 5594      Info(
"HandleWorkerLists", 
"Enter");
 
 5614                     PDB(kGlobal, 1) 
Info(
"HandleWorkerList", 
"all workers (re-)activated");
 
 5617                        PDB(kGlobal, 1) 
Info(
"HandleWorkerList", 
"%d workers could not be (re-)activated", 
nactmax - 
nactnew);
 
 5619               } 
else if (
ord == 
"restore") {
 
 5621                     PDB(kGlobal, 1) 
Info(
"HandleWorkerList",
"active worker(s) restored");
 
 5623                     Error(
"HandleWorkerList", 
"some active worker(s) could not be restored; check logs");
 
 5628                        PDB(kGlobal, 1) 
Info(
"HandleWorkerList",
"worker(s) %s (re-)activated", 
ord.Data());
 
 5631                        Error(
"HandleWorkerList", 
"some worker(s) could not be (re-)activated;" 
 5632                                                  " # of actives: %d --> %d (nwc: %d)",
 
 5639               PDB(kGlobal, 1) 
Info(
"HandleWorkerList",
"all workers are already active");
 
 5642            Warning(
"HandleWorkerList",
"undefined PROOF session: protocol error?");
 
 5655                     PDB(kGlobal, 1) 
Info(
"HandleWorkerList",
"all workers deactivated");
 
 5658                        PDB(kGlobal, 1) 
Info(
"HandleWorkerList",
"%d workers could not be deactivated", 
nactnew);
 
 5663                        PDB(kGlobal, 1) 
Info(
"HandleWorkerList",
"worker(s) %s deactivated", 
ord.Data());
 
 5666                        Error(
"HandleWorkerList", 
"some worker(s) could not be deactivated:" 
 5667                                                  " # of actives: %d --> %d (nwc: %d)",
 
 5674               PDB(kGlobal, 1) 
Info(
"HandleWorkerList",
"all workers are already inactive");
 
 5677            Warning(
"HandleWorkerList",
"undefined PROOF session: protocol error?");
 
 5681         Warning(
"HandleWorkerList",
"unknown action type (%d)", 
type);
 
 
 5708              "no appropriate master line found in %s", 
fConfFile.
Data());
 
 
 5788   const char *
type   = 0;
 
 5797   if (level >= 
kInfo) {
 
 5799      char *ps = location ? (
char *) 
strrchr(location, 
'|') : (
char *)0;
 
 5801         ipos = (
int)(ps - (
char *)location);
 
 5817      type = 
"*** Break ***";
 
 5835   if (!location || 
ipos == 0 ||
 
 
 5912         Printf(
" +++ Latest processing times: %f s (CPU: %f s)",
 
 
 5951   sql.Form(
"SELECT priority WHERE group='%s' FROM proofpriority", 
fGroup.
Data());
 
 5956   if (!
db || 
db->IsZombie()) {
 
 5957      Error(
"GetPriority", 
"failed to connect to SQL server %s as %s %s",
 
 5964         Error(
"GetPriority", 
"query into proofpriority failed");
 
 5972            Error(
"GetPriority", 
"first row is header is NULL");
 
 
 5996      Info(
"SendAsynMessage",
"%s", (
msg ? 
msg : 
"(null)"));
 
 6002         Warning(
"SendAsynMessage", 
"could not send message '%s'", 
msg);
 
 
 6034               emsg.Form(
"+++ WARNING +++: %s: requested truncate size too small" 
 6045               Error(
"TruncateLogFile", 
"truncating to %lld bytes; file size is %lld bytes (errno: %d)",
 
 6047               emsg.Form(
"+++ WARNING +++: %s: problems truncating log file to %lld bytes; file size is %lld bytes" 
 6051               Info(
"TruncateLogFile", 
"file truncated to %lld bytes (80%% of %lld); file size was %lld bytes ",
 
 6053               emsg.Form(
"+++ WARNING +++: %s: log file truncated to %lld bytes (80%% of %lld)",
 
 6059         emsg.Form(
"+++ WARNING +++: %s: could not stat log file descriptor" 
 
 6072   Error(
"HandleException", 
"caugth exception triggered by signal '%d' %s %lld",
 
 6076   emsg.Form(
"%s: caught exception triggered by signal '%d' %s %lld",
 
 
 6090      Info(
"HandleDataSets", 
"enter");
 
 6094      Warning(
"HandleDataSets", 
"no data manager is available to fullfil the request");
 
 6115            if (
slb) 
slb->Form(
"%d %s", 
type, uri.Data());
 
 6127               if (
slb) 
slb->Form(
"%d %s %s", 
type, uri.Data(), opt.Data());
 
 6131               if (!dataSet || dataSet->GetList()->GetSize() == 0) {
 
 6132                  Error(
"HandleDataSets", 
"can not save an empty list.");
 
 6140               Info(
"HandleDataSets", 
"dataset registration not allowed");
 
 6152               Error(
"HandleDataSets",
 
 6153                  "no dataset staging request repository available");
 
 6164               Warning(
"HandleDataSets", 
"staging of %s already requested",
 
 6171            if (!
fc || (
fc->GetNFiles() == 0)) {
 
 6172               Error(
"HandleDataSets", 
"empty dataset or no dataset returned");
 
 6194               Error(
"HandleDataSets",
 
 6195                  "can't register staging request for %s", uri.Data());
 
 6200            Info(
"HandleDataSets",
 
 6201               "Staging request registered for %s", uri.Data());
 
 6211               Error(
"HandleDataSets",
 
 6212                  "no dataset staging request repository available");
 
 6219            while (
reInvalid.Substitute(uri, 
"_")) {}
 
 6230               Info(
"HandleDataSets", 
"no pending staging request for %s",
 
 6240               Error(
"HandleDataSets",
 
 6241                  "no dataset staging request repository available");
 
 6248            while (
reInvalid.Substitute(uri, 
"_")) {}
 
 6259            (*mess) >> uri >> opt;
 
 6268            (*mess) >> uri >> opt;
 
 6287                  if ((
xfc = 
fc->GetFilesOnServer(opt.Data()))) {
 
 6292               if (
rmap->GetSize() > 0) {
 
 6295                  Info(
"HandleDataSets", 
"no dataset found on server '%s'", opt.Data());
 
 6312            (*mess) >> uri >> opt;
 
 6329               if (
slb) 
slb->Form(
"%d %s", 
type, uri.Data());
 
 6335               Info(
"HandleDataSets", 
"dataset creation / removal not allowed");
 
 6344               (*mess) >> uri >> opt;
 
 6355               Info(
"HandleDataSets", 
"dataset verification not allowed");
 
 6372               Info(
"HandleDataSets", 
"quota control disabled");
 
 6386               Info(
"HandleDataSets", 
"quota control disabled");
 
 6395               if (
slb) 
slb->Form(
"%d %s", 
type, uri.Data());
 
 6398               Info(
"HandleDataSets", 
"kSetDefaultTreeName: modification of dataset info not allowed");
 
 6406            (*mess) >> uri >> opt;
 
 6408            if (opt == 
"show") {
 
 6411            } 
else if (opt == 
"clear") {
 
 6415               Error(
"HandleDataSets", 
"kCache: unknown action: %s", opt.Data());
 
 6421         Error(
"HandleDataSets", 
"unknown type %d", 
type);
 
 
 6448                  Info(
"HandleSubmerger", 
"kSendOutput: interrupting ...");
 
 6467                  PDB(kSubmerger, 2) 
Info(
"HandleSubmerger",
 
 6468                                          "kSendOutput: worker asked for sending output to merger #%d %s:%d",
 
 6473                     PDB(kSubmerger, 2) 
Info(
"HandleSubmerger",
 
 6474                                             "kSendOutput: %s - inform the master", 
msg.Data());
 
 6488                     PDB(kSubmerger, 2) 
Info(
"HandleSubmerger", 
"kSendOutput: worker sent its output");
 
 6495                  if (
name == 
"master") {
 
 6496                     PDB(kSubmerger, 2) 
Info(
"HandleSubmerger",
 
 6497                                             "kSendOutput: worker was asked for sending output to master");
 
 6499                        Warning(
"HandleSubmerger", 
"problems sending output list");
 
 6505                  } 
else if (!t || !(t->
IsValid())) {
 
 6506                     msg.Form(
"worker %s could not open a valid socket to merger #%d at %s:%d",
 
 6508                     PDB(kSubmerger, 2) 
Info(
"HandleSubmerger",
 
 6509                                             "kSendOutput: %s - inform the master", 
msg.Data());
 
 6524               Error(
"HandleSubmerger", 
"kSendOutput: received not on worker");
 
 6540                  Info(
"HandleSubmerger", 
"worker %s established as merger", 
fOrdinal.
Data());
 
 6543                  Info(
"HandleSubmerger",
 
 6544                       "kBeMerger: worker asked for being merger #%d for %d connections",
 
 6550                  PDB(kSubmerger, 2) 
Info(
"HandleSubmerger",
 
 6551                                          "kBeMerger: mergerPlayer created (%p) ", 
mergerPlayer);
 
 6559                        Info(
"HandleSubmerger", 
"kBeMerger: all outputs from workers accepted");
 
 6571                     while ((o = 
nxo())) {
 
 6577                                 Info(
"HandleSocketInput", 
"removing merged object (%p)", o);
 
 6582                     PDB(kSubmerger, 2) 
Info(
"HandleSubmerger",
"kBeMerger: own outputs added");
 
 6583                     PDB(kSubmerger, 2) 
Info(
"HandleSubmerger",
"starting delayed merging on %s", 
fOrdinal.
Data());
 
 6590                     PDB(kSubmerger, 2) 
Info(
"HandleSubmerger", 
"delayed merging on %s finished ", 
fOrdinal.
Data());
 
 6591                     PDB(kSubmerger, 2) 
Info(
"HandleSubmerger", 
"%s sending results to master ", 
fOrdinal.
Data());
 
 6594                        Warning(
"HandleSubmerger",
"kBeMerger: problems sending output list");
 
 6598                     PDB(kSubmerger, 2) 
Info(
"HandleSubmerger",
"kBeMerger: results sent to master");
 
 6615                  Warning(
"HandleSubmerger",
"kBeMerger: problems craeting the merger player!");
 
 6624               Error(
"HandleSubmerger",
"kSendOutput: received not on worker");
 
 6638            PDB(kSubmerger, 2)  
Info(
"HandleSubmerger", 
"kStopMerging");
 
 6640               Info(
"HandleSubmerger", 
"kStopMerging: interrupting ...");
 
 
 6656   Info(
"HandleFork", 
"fork cloning not implemented");
 
 
 6670   if ((pid = 
fork()) < 0) {
 
 6671      Error(
"Fork", 
"failed to fork");
 
 6676   if (!pid) 
return pid;
 
 6690   Warning(
"Fork", 
"Functionality not provided under windows");
 
 
 6705   if (
fname.Contains(
"<user>")) {
 
 6711         fname.ReplaceAll(
"<user>", 
"nouser");
 
 6715   if (
fname.Contains(
"<u>")) {
 
 6718         fname.ReplaceAll(
"<u>", 
u);
 
 6721         fname.ReplaceAll(
"<u>", 
u);
 
 6723         fname.ReplaceAll(
"<u>", 
"n");
 
 6727   if (
fname.Contains(
"<group>")) {
 
 6733         fname.ReplaceAll(
"<group>", 
"default");
 
 6737   if (
fname.Contains(
"<stag>")) {
 
 6743         ::Warning(
"TProofServ::ResolveKeywords", 
"session tag undefined: ignoring");
 
 6747   if (
fname.Contains(
"<ord>")) {
 
 6751         ::Warning(
"TProofServ::ResolveKeywords", 
"ordinal number undefined: ignoring");
 
 6754   if (
fname.Contains(
"<qnum>")) {
 
 6758         ::Warning(
"TProofServ::ResolveKeywords", 
"query seqeuntial number undefined: ignoring");
 
 6761   if (
fname.Contains(
"<file>") && path && 
strlen(path) > 0) {
 
 6762      fname.ReplaceAll(
"<file>", path);
 
 6765   if (
fname.Contains(
"<rver>")) {
 
 6767      fname.ReplaceAll(
"<rver>", 
v);
 
 6770   if (
fname.Contains(
"<build>")) {
 
 6773      fname.ReplaceAll(
"<build>", 
b);
 
 
 6788   std::lock_guard<std::recursive_mutex> lock(
fQMtx);
 
 
 6820   std::lock_guard<std::recursive_mutex> lock(
fQMtx);
 
 
 6829   std::lock_guard<std::recursive_mutex> lock(
fQMtx);
 
 
 6838   std::lock_guard<std::recursive_mutex> lock(
fQMtx);
 
 
 6848   std::lock_guard<std::recursive_mutex> lock(
fQMtx);
 
 
 6858   std::lock_guard<std::recursive_mutex> lock(
fQMtx);
 
 
 6869   std::lock_guard<std::recursive_mutex> lock(
fQMtx);
 
 
 6882   std::lock_guard<std::recursive_mutex> lock(
fQMtx);
 
 6887      while ((o = 
nxq())) {
 
 
 6954      if (!
dsrv.EndsWith(
"/")) 
dsrv += 
"/";
 
 
 6969   if (!
strcmp(
u.GetProtocol(), 
"file")) {
 
 
 7003#if !defined(R__WIN32) && !defined(R__WINGCC) 
 
 7031#if !defined(R__WIN32) && !defined(R__WINGCC) 
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
const Bool_t kIterBackward
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
Int_t gErrorIgnoreLevel
Error handling routines.
constexpr Int_t kSysError
ErrorHandlerFunc_t SetErrorHandler(ErrorHandlerFunc_t newhandler)
Set an errorhandler function. Returns the old handler.
R__EXTERN void Throw(int code)
If an exception context has been set (using the TRY and RETRY macros) jump back to where it was set.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void input
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t mask
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t del
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize fs
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
R__EXTERN TProofDebug::EProofDebugMask gProofDebugMask
R__EXTERN Int_t gProofDebugLevel
TApplication * GetTProofServ(Int_t *argc, char **argv, FILE *flog)
static volatile Int_t gProofServDebug
static void SendAsynMsg(const char *msg)
R__EXTERN TProofServ * gProofServ
Int_t(* OldProofServAuthSetup_t)(TSocket *, Bool_t, Int_t, TString &, TString &, TString &)
const char *const kPROOF_QueryDir
const char *const kPROOF_DataSetDir
const char *const kPROOF_DataDir
const char *const kPROOF_CacheLockFile
const char *const kPROOF_CacheDir
const char *const kPROOF_PackDir
const char *const kPROOF_WorkDir
const char *const kPROOF_QueryLockFile
R__EXTERN TProof * gProof
const Int_t kPROOF_Protocol
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
char * StrDup(const char *str)
Duplicate the string str.
Bool_t R_ISDIR(Int_t mode)
R__EXTERN TSystem * gSystem
This class creates the ROOT Application Environment that interfaces to the windowing system eventloop...
virtual Longptr_t ProcessLine(const char *line, Bool_t sync=kFALSE, Int_t *error=nullptr)
Process a single command line, either a C++ statement or an interpreter command starting with a "....
virtual void Run(Bool_t retrn=kFALSE)
Main application eventloop. Calls system dependent eventloop via gSystem.
virtual Longptr_t ProcessFile(const char *file, Int_t *error=nullptr, Bool_t keep=kFALSE)
Process a file containing a C++ macro.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
Manages an element of a TDSet.
This class implements a data set to be used for PROOF processing.
static Long64_t GetEntries(Bool_t isTree, const char *filename, const char *path, TString &objname)
Returns number of entries in tree or objects in file.
Int_t WriteDataSet(const char *group, const char *user, const char *dsName, TFileCollection *dataset, UInt_t option=0, TMD5 *checksum=0)
Writes indicated dataset.
Bool_t ExistsDataSet(const char *group, const char *user, const char *dsName)
Checks if the indicated dataset exits.
Bool_t RemoveDataSet(const char *group, const char *user, const char *dsName)
Removes the indicated dataset.
TFileCollection * GetDataSet(const char *uri, const char *srv=0) override
Utility function used in various methods for user dataset upload.
virtual TFileCollection * GetDataSet(const char *uri, const char *server=0)
Utility function used in various methods for user dataset upload.
Int_t ScanDataSet(const char *uri, const char *opt)
Scans the dataset indicated by 'uri' following the 'opts' directives.
virtual TMap * GetDataSets(const char *uri, UInt_t=TDataSetManager::kExport)
Returns all datasets for the <group> and <user> specified by <uri>.
virtual Bool_t ExistsDataSet(const char *uri)
Checks if the indicated dataset exits.
virtual TMap * GetGroupQuotaMap()
virtual void ShowDataSets(const char *uri="*", const char *opt="")
Prints formatted information about the dataset 'uri'.
virtual void ShowQuota(const char *opt)
Display quota information.
virtual Bool_t RemoveDataSet(const char *uri)
Removes the indicated dataset.
Bool_t ParseUri(const char *uri, TString *dsGroup=0, TString *dsUser=0, TString *dsName=0, TString *dsTree=0, Bool_t onlyCurrent=kFALSE, Bool_t wildcards=kFALSE)
Parses a (relative) URI that describes a DataSet on the cluster.
virtual Int_t ClearCache(const char *uri)
Clear cached information matching uri.
virtual Int_t RegisterDataSet(const char *uri, TFileCollection *dataSet, const char *opt)
Register a dataset, perfoming quota checkings, if needed.
virtual Int_t ShowCache(const char *uri)
Show cached information matching uri.
A List of entry numbers in a TTree or TChain.
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
virtual Int_t ReadFile(const char *fname, EEnvLevel level)
Read and parse the resource file for a certain level.
virtual TEnvRec * Lookup(const char *n) const
Loop over all resource records and return the one with name.
<div class="legacybox"><h2>Legacy Code</h2> TEventList is a legacy interface: there will be no bug fi...
Class that contains a list of TFileInfo's and accumulated meta data information about its entries.
Class describing a generic file including meta information.
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
static Long64_t GetFileBytesRead()
Static function returning the total number of bytes read from all files.
static EFileType GetType(const char *name, Option_t *option="", TString *prefix=nullptr)
Resolve the file type as a function of the protocol field in 'name'.
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Bool_t Notify() override
Handle expiration of the idle timer. The session will just be terminated.
This class represents an Internet Protocol (IP) address.
Book space in a file, create I/O buffers, to fill them, (un)compress them.
virtual const char * GetClassName() const
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
TObject * Remove(TObject *obj) override
Remove object from the list.
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
This code implements the MD5 message-digest algorithm.
static TMD5 * FileChecksum(const char *file)
Returns checksum of specified file.
Class supporting a collection of lines with C++ code.
virtual Int_t ReadFile(const char *filename)
Read lines in filename in this macro.
void SaveSource(FILE *fp)
Save macro source in file pointer fp.
TList * GetListOfLines() const
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
static void EnableSchemaEvolutionForAll(Bool_t enable=kTRUE)
Static function enabling or disabling the automatic schema evolution.
virtual void RemoveAll()
Remove all sockets from the monitor.
TSocket * Select()
Return pointer to socket for which an event is waiting.
virtual void Add(TSocket *sock, Int_t interest=kRead)
Add socket to the monitor's active list.
Int_t GetActive(Long_t timeout=-1) const
Return number of sockets in the active list.
virtual void DeActivateAll()
De-activate all activated sockets.
TList * GetListOfDeActives() const
Returns a list with all de-active sockets.
virtual void Remove(TSocket *sock)
Remove a socket from the monitor.
The TNamed class is the base class for all named ROOT classes.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
Collectable string class.
const char * GetName() const override
Returns name of object.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void SysError(const char *method, const char *msgfmt,...) const
Issue system error message.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
virtual void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
@ kInvalidObject
if object ctor succeeded but object should not be used
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Wrapper for PCRE library (Perl Compatible Regular Expressions).
The PROOF package manager contains tools to manage packages.
void SetLogger(TPackMgrLog_t logger)
Bool_t IsInDir(const char *path)
Method to check if 'path' is in the managed directory Return kTRUE or kFALSE.
void Show(const char *title=0)
Show available packages.
void GetEnabledPackages(TString &packlist)
Method to get a semi-colon separated list with the names of the enabled packages.
Int_t Install(const char *par, Bool_t rmold=kFALSE)
Install package from par (unpack the file in the directory); par can be an URL for remote retrieval.
Int_t GetParPath(const char *pack, TString &path)
Method to get the path of the PAR file for package 'pack'.
Int_t Unpack(const char *pack, TMD5 *sum=0)
Read MD5 checksum of the PAR file from the PROOF-INF/md5.txt file.
TMD5 * GetMD5(const char *pack)
Get MD5 checksum of the PAR file corresponding to given package Returns a pointer to a TMD5 object,...
void ShowEnabled(const char *title=0)
Show enabled packages.
TList * GetList() const
Get list of available packages Returns a pointer to a TList object, transferring ownership to the cal...
Int_t Clean(const char *pack)
Clean dir for package 'pack' Return -1 in case of error, 0 otherwise.
static Int_t RegisterGlobalPath(const char *paths)
Parse one or more paths as possible sources of packages Returns number of paths added; or -1 in case ...
Int_t Load(const char *pack, TList *optls=0)
Method to load a package taking an option list Return -1 on error, 0 otherwise.
Int_t Unload(const char *pack)
Method to unload a package.
TList * GetListOfEnabled() const
Get list of enabled packages Returns a pointer to a TList object, transferring ownership to the calle...
static TPackMgr * GetPackMgr(const char *pack, TPackMgr *packmgr=nullptr)
Get the package manager having 'pack'; priority is given to packmgr, if defined.
void SetPrefix(const char *pfx)
Int_t Remove(const char *pack=0, Bool_t dolock=kTRUE)
Remove package 'pack' If 'pack' is null or empty all packages are cleared.
TMD5 * ReadMD5(const char *pack)
Read MD5 checksum of the PAR file from the PROOF-INF/md5.txt file.
Class used by TMap to store (key,value) pairs.
This class implements a plugin library manager.
Int_t Unlock()
Unlock the directory.
Int_t Lock()
Locks the directory.
The purpose of this class is to provide a complete node description for masters, submasters and worke...
Container class for processing statistics.
Long64_t GetEntries() const
void Print(Option_t *option="") const override
Dump the content.
void SetLearnTime(Double_t learnTime)
void IncCPUTime(Double_t procTime)
void IncProcTime(Double_t procTime)
Long64_t GetBytesRead() const
TQueryResult version adapted to PROOF neeeds.
void SetRunning(Int_t startlog, const char *par, Int_t nwrks)
Call when running starts.
The purpose of this class is to provide a standard interface to static config files.
Bool_t Notify() override
Handle this interrupt.
TProofServInterruptHandler(TProofServ *s)
TProofServLogHandlerGuard(const char *cmd, TSocket *s, const char *pfx="", Bool_t on=kTRUE)
Init a guard for executing a command in a pipe.
TProofServLogHandler * fExecHandler
virtual ~TProofServLogHandlerGuard()
Close a guard for executing a command in a pipe.
TProofServLogHandler(const char *cmd, TSocket *s, const char *pfx="")
Execute 'cmd' in a pipe and handle output messages from the related file.
Bool_t Notify() override
Handle available message in the open file.
~TProofServLogHandler() override
Handle available message in the open file.
static Int_t GetCmdRtn()
Static method to get the return code from the execution of a command via the pipe.
static void SetDefaultPrefix(const char *pfx)
Static method to set the default prefix.
Bool_t Notify() override
Handle this signal.
TProofServSigPipeHandler(TProofServ *s)
Bool_t Notify() override
Handle this interrupt.
TProofServTerminationHandler(TProofServ *s)
Class providing the PROOF server.
const char * GetOrdinal() const
void SetIdle(Bool_t st=kTRUE)
Change the idle status.
void Print(Option_t *option="") const override
Print status of slave server.
const char * GetConfDir() const
void TruncateLogFile()
Truncate the log file to the 80% of the required max size if this is set.
Int_t CatMotd()
Print message of the day (in the file pointed by the env PROOFMOTD or from fConfDir/etc/proof/motd).
Int_t GetPriority()
Get the processing priority for the group the user belongs too.
void SendStatistics()
Send statistics of slave server to master or client.
const char * GetImage() const
virtual Int_t CreateServer()
Finalize the server setup.
virtual EQueryAction GetWorkers(TList *workers, Int_t &prioritychange, Bool_t resume=kFALSE)
Get list of workers to be used from now on.
Int_t GetQuerySeqNum() const
Bool_t IsWaiting()
Return kTRUE if the session is waiting for the OK to start processing.
static void ErrorHandler(Int_t level, Bool_t abort, const char *location, const char *msg)
The PROOF error handler function.
static Long_t fgResMemMax
TMonitor * fMergingMonitor
const char * GetUser() const
virtual void HandleProcess(TMessage *mess, TString *slb=0)
Handle processing request.
void FlushLogFile()
Reposition the read pointer in the log file to the very end.
Int_t CleanupWaitingQueries(Bool_t del=kTRUE, TList *qls=0)
Cleanup the waiting queries list.
static FILE * fgErrorHandlerFile
static Bool_t IsActive()
Static function that returns kTRUE in case we are a PROOF server.
static TProofServ * This()
Static function returning pointer to global object gProofServ.
static void GetLocalServer(TString &dsrv)
Extract LOCALDATASERVER info in 'dsrv'.
void GetOptions(Int_t *argc, char **argv) override
Get and handle command line options.
virtual void HandleRemove(TMessage *mess, TString *slb=0)
Handle remove request.
static void SetLastEntry(Long64_t lastentry)
Set the last entry before exception.
virtual void HandleArchive(TMessage *mess, TString *slb=0)
Handle archive request.
static Float_t GetMemHWM()
MemHWM getter.
Bool_t IsParallel() const
True if in parallel mode.
TProofLockPath * fQueryLock
static void FilterLocalroot(TString &path, const char *url="root://dum/")
If 'path' is local and 'dsrv' is Xrootd, apply 'path.Localroot' settings, if any.
static FILE * SetErrorHandlerFile(FILE *ferr)
Set the file stream where to log (default stderr).
virtual void HandleFork(TMessage *mess)
Cloning itself via fork. Not implemented.
virtual void HandleSigPipe()
Called when the client is not alive anymore (i.e.
void RedirectOutput(const char *dir=0, const char *mode="w")
Redirect stdout to a log file.
static void SetLastMsg(const char *lastmsg)
Set the message to be sent back in case of exceptions.
virtual void DeletePlayer()
Delete player instance.
void Terminate(Int_t status) override
Terminate the proof server.
virtual void ProcessNext(TString *slb=0)
process the next query from the queue of submitted jobs.
TSocket * GetSocket() const
virtual void HandleUrgentData()
Handle Out-Of-Band data sent by the master or client.
void SetQueryRunning(TProofQueryResult *pq)
Set query in running state.
TProofQueryResult * NextQuery()
Get the next query from the waiting list.
Int_t SetupCommon()
Common part (between TProofServ and TXProofServ) of the setup phase.
Int_t SendResults(TSocket *sock, TList *outlist=0, TQueryResult *pq=0)
Sends all objects from the given list to the specified socket.
const char * GetGroup() const
TDSetElement * GetNextPacket(Long64_t totalEntries=-1)
Get next range of entries to be processed on this server.
Bool_t IsEndMaster() const
void SendAsynMessage(const char *msg, Bool_t lf=kTRUE)
Send an asychronous message to the master / client .
static void ResolveKeywords(TString &fname, const char *path=0)
Replace <ord>, <user>, <u>, <group>, <stag>, <qnum>, <file>, <rver> and <build> placeholders in fname...
Int_t ReceiveFile(const char *file, Bool_t bin, Long64_t size)
Receive a file, either sent by a client or a master server.
virtual Int_t HandleWorkerLists(TMessage *mess)
Handle here all requests to modify worker lists.
static Int_t RegisterDataSets(TList *in, TList *out, TDataSetManager *dsm, TString &e)
Register TFileCollections in 'out' as datasets according to the rules in 'in'.
TVirtualProofPlayer * fPlayer
virtual Int_t HandleSocketInput(TMessage *mess, Bool_t all)
Process input coming from the client or from the master server.
virtual void HandleQueryList(TMessage *mess)
Handle request for list of queries.
virtual void HandleTermination()
const char * GetDataDir() const
virtual void HandleCheckFile(TMessage *mess, TString *slb=0)
Handle file checking request.
TProofLockPath * fCacheLock
TProofServ(Int_t *argc, char **argv, FILE *flog=0)
Main constructor.
virtual Int_t HandleCache(TMessage *mess, TString *slb=0)
Handle here all cache and package requests.
std::recursive_mutex fQMtx
virtual void HandleSocketInput()
Handle input coming from the client or from the master server.
virtual void MakePlayer()
Make player instance.
virtual void HandleSubmerger(TMessage *mess)
Handle a message of type kPROOF_SUBMERGER.
virtual Int_t HandleLibIncPath(TMessage *mess)
Handle lib, inc search paths modification request.
TShutdownTimer * fShutdownTimer
void HandleException(Int_t sig) override
Exception handler: we do not try to recover here, just exit.
Bool_t IsIdle()
Return the idle status.
TDataSetManagerFile * fDataSetStgRepo
Int_t GetSessionStatus()
Return the status of this session: 0 idle 1 running 2 being terminated (currently unused) 3 queued 4 ...
virtual Int_t HandleDataSets(TMessage *mess, TString *slb=0)
Handle here requests about datasets.
TServerSocket * fMergingSocket
virtual Int_t Setup()
Print the ProofServ logo on standard output.
static Long_t fgVirtMemMax
TFileHandler * fInputHandler
void SendParallel(Bool_t async=kFALSE)
Send number of parallel nodes to master or client.
Int_t GetCompressionLevel() const
static Long_t GetResMemMax()
ResMemMax getter.
Int_t QueueQuery(TProofQueryResult *pq)
Add a query to the waiting list Returns the number of queries in the list.
TIdleTOTimer * fIdleTOTimer
static Int_t fgLogToSysLog
virtual Int_t Fork()
Fork a child.
static Long_t GetVirtMemMax()
VirtMemMax getter.
Bool_t UnlinkDataDir(const char *path)
Scan recursively the datadir and unlink it if empty Return kTRUE if it can be unlinked,...
Int_t GetProtocol() const
Bool_t AcceptResults(Int_t connections, TVirtualProofPlayer *mergerPlayer)
Accept and merge results from a set of workers.
TDataSetManager * fDataSetManager
TQueryResultManager * fQMgr
void Reset(const char *dir)
Reset PROOF environment to be ready for execution of next command.
Int_t OldAuthSetup(TString &wconf)
Setup authentication related stuff for old versions.
static TString fgSysLogEntity
Int_t WaitingQueries()
Return the number of waiting queries.
const char * GetWorkDir() const
const char * GetPrefix() const
static TString fgSysLogService
~TProofServ() override
Cleanup.
void LogToMaster(Bool_t on=kTRUE)
TReaperTimer * fReaperTimer
static Long64_t fgLastEntry
void Run(Bool_t retrn=kFALSE) override
Main server eventloop.
const char * GetSessionTag() const
virtual void SendLogFile(Int_t status=0, Int_t start=-1, Int_t end=-1)
Send log file to master.
static Float_t GetMemStop()
MemStop getter.
Bool_t IsTopMaster() const
void RestartComputeTime()
Reset the compute time.
TProofQueryResult * MakeQueryResult(Long64_t nentries, const char *opt, TList *inl, Long64_t first, TDSet *dset, const char *selec, TObject *elist)
Create a TProofQueryResult instance for this query.
virtual void HandleRetrieve(TMessage *mess, TString *slb=0)
Handle retrieve request.
Int_t UpdateSessionStatus(Int_t xst=-1)
Update the session status in the relevant file.
TObject * Get(const char *namecycle)
Get object with name "name;cycle" (e.g.
static TMap * GetDataSetNodeMap(TFileCollection *fc, TString &emsg)
Get a map {server-name, list-of-files} for collection 'fc' to be used in TPacketizerFile.
const char * GetService() const
This class controls a Parallel ROOT Facility, PROOF, cluster.
const char * GetSessionTag() const
void ShowPackages(Bool_t all=kFALSE, Bool_t redirlog=kFALSE)
List contents of package directory.
void Print(Option_t *option="") const override
Print status of PROOF cluster.
Bool_t IsEndMaster() const
Int_t UploadPackage(const char *par, EUploadPackageOpt opt=kUntar, TList *workers=0)
Upload a PROOF archive (PAR file).
Int_t SendCurrentState(ESlaves list=kActive)
Transfer the current state of the master to the active slave servers.
TList * GetListOfSlaves() const
Int_t DisablePackages()
Remove all packages.
static Int_t SaveInputData(TQueryResult *qr, const char *cachedir, TString &emsg)
Save input data file from 'cachedir' into the sandbox or create a the file with input data objects.
Int_t BuildPackage(const char *package, EBuildPackageOpt opt=kBuildAll, Int_t chkveropt=TPackMgr::kCheckROOT, TList *workers=0)
Build specified package.
TList * GetListOfInactiveSlaves() const
static Int_t GetInputData(TList *input, const char *cachedir, TString &emsg)
Get the input data from the file defined in the input list.
Bool_t IsParallel() const
TVirtualProofPlayer * GetPlayer() const
void AskParallel()
Ask the for the number of parallel slaves.
virtual void ClearCache(const char *file=0)
Remove file from all file caches.
Int_t ActivateWorker(const char *ord, Bool_t save=kTRUE)
Make sure that the worker identified by the ordinal number 'ord' is in the active list.
TObject * GetParameter(const char *par) const
Get specified parameter.
void SetRunStatus(ERunStatus rst)
static void AssertMacroPath(const char *macro)
Make sure that the directory path contained by macro is in the macro path.
Int_t AddIncludePath(const char *incpath, Bool_t onClient=kFALSE, TList *wrks=0, Bool_t doCollect=kTRUE)
Add 'incpath' to the inc path search.
virtual void ShowCache(Bool_t all=kFALSE)
List contents of file cache.
Int_t SetParallel(Int_t nodes=-1, Bool_t random=kFALSE)
Tell PROOF how many slaves to use in parallel.
static void AddEnvVar(const char *name, const char *value)
Add an variable to the list of environment variables passed to proofserv on the master and slaves.
static Bool_t GetFileInCmd(const char *cmd, TString &fn)
Static method to extract the filename (if any) form a CINT command.
Float_t GetCpuTime() const
void SetPlayer(TVirtualProofPlayer *player)
Set a new PROOF player.
Int_t ClearPackage(const char *package)
Remove a specific package.
Int_t AddWorkers(TList *wrks)
Works on the master node only.
Int_t ClearPackages()
Remove all packages.
void SetActive(Bool_t=kTRUE)
Int_t RemoveIncludePath(const char *incpath, Bool_t onClient=kFALSE)
Remove 'incpath' from the inc path search.
Int_t GetParallel() const
Returns number of slaves active in parallel mode.
Int_t UnloadPackage(const char *package)
Unload specified package.
Long64_t GetBytesRead() const
void AskStatistics()
Ask the for the statistics of the slaves.
Int_t DeactivateWorker(const char *ord, Bool_t save=kTRUE)
Remove the worker identified by the ordinal number 'ord' from the the active list.
void SetRealTimeLog(Bool_t on=kTRUE)
Switch ON/OFF the real-time logging facility.
Int_t Ping(ESlaves list)
Ping PROOF slaves. Returns the number of slaves that responded.
Int_t UnloadPackages()
Unload all packages.
virtual TVirtualProofPlayer * MakePlayer(const char *player=0, TSocket *s=0)
Construct a TProofPlayer object.
TList * GetListOfActiveSlaves() const
virtual Int_t Load(const char *macro, Bool_t notOnClient=kFALSE, Bool_t uniqueOnly=kTRUE, TList *wrks=0)
Load the specified macro on master, workers and, if notOnClient is kFALSE, on the client.
Int_t AddDynamicPath(const char *libpath, Bool_t onClient=kFALSE, TList *wrks=0, Bool_t doCollect=kTRUE)
Add 'libpath' to the lib path search.
Int_t RemoveWorkers(TList *wrks)
Used for shuting down the workres after a query is finished.
Int_t RemoveDynamicPath(const char *libpath, Bool_t onClient=kFALSE)
Remove 'libpath' from the lib path search.
TList * GetOutputList()
Get list with all object created during processing (see Process()).
void StopProcess(Bool_t abort, Int_t timeout=-1)
Send STOPPROCESS message to master and workers.
Int_t SendFile(const char *file, Int_t opt=(kBinary|kForward|kCp|kCpBin), const char *rfile=0, TSlave *sl=0)
Send a file to master or slave servers.
static Int_t AssertDataSet(TDSet *dset, TList *input, TDataSetManager *mgr, TString &emsg)
Make sure that dataset is in the form to be processed.
void Interrupt(EUrgent type, ESlaves list=kActive)
Send interrupt to master or slave servers.
virtual Int_t Echo(const TObject *obj)
Sends an object to master and workers and expect them to send back a message with the output of its T...
Int_t SendCommand(const char *cmd, ESlaves list=kActive)
Send command to be executed on the PROOF master and/or slaves.
TList * GetListOfSlaveInfos()
Returns list of TSlaveInfo's. In case of error return 0.
virtual void ValidateDSet(TDSet *dset)
Validate a TDSet.
const char * GetUser() const
void TerminateWorker(TSlave *wrk)
Ask an active worker 'wrk' to terminate, i.e. to shutdown.
Int_t LoadPackage(const char *package, Bool_t notOnClient=kFALSE, TList *loadopts=0, TList *workers=0)
Load specified package.
void SetLogLevel(Int_t level, UInt_t mask=TProofDebug::kAll)
Set server logging level.
TList * GetListOfBadSlaves() const
Int_t DisablePackage(const char *package)
Remove a specific package.
void ShowEnabledPackages(Bool_t all=kFALSE)
List which packages are enabled.
Bool_t UseDynamicStartup() const
Bool_t IsDataReady(Long64_t &totalbytes, Long64_t &bytesready)
See if the data is ready to be analyzed.
const char * GetGroup() const
Class managing the query-result area.
void SaveQuery(TProofQueryResult *qr, const char *fout=0)
Save current status of query 'qr' to file name fout.
Bool_t FinalizeQuery(TProofQueryResult *pq, TProof *proof, TVirtualProofPlayer *player)
Final steps after Process() to complete the TQueryResult instance.
void RemoveQuery(TQueryResult *qr, Bool_t soft=kFALSE)
Remove everything about query qr.
TList * PreviousQueries() const
Int_t CleanupQueriesDir()
Remove all queries results referring to previous sessions.
Int_t ApplyMaxQueries(Int_t mxq)
Scan the queries directory and remove the oldest ones (and relative dirs, if empty) in such a way onl...
TProofQueryResult * LocateQuery(TString queryref, Int_t &qry, TString &qdir)
Locate query referenced by queryref.
Int_t CleanupSession(const char *sessiontag)
Cleanup query dir qdir.
Int_t DrawQueries() const
Int_t LockSession(const char *sessiontag, TProofLockPath **lck)
Try locking query area of session tagged sessiontag.
void IncrementDrawQueries()
void ScanPreviousQueries(const char *dir)
Scan the queries directory for the results of previous queries.
A container class for query results.
Long64_t GetEntries() const
TMacro * GetSelecImp() const
TQueryResult * CloneInfo()
Return an instance of TQueryResult containing only the local info fields, i.e.
virtual void SetProcessInfo(Long64_t ent, Float_t cpu=0., Long64_t siz=-1, Float_t inittime=0., Float_t proctime=0.)
Set processing info.
TObject * GetInputObject(const char *classname) const
Return first instance of class 'classname' in the input list.
TMacro * GetSelecHdr() const
const char * GetOptions() const
Long64_t GetFirst() const
virtual void SetInputList(TList *in, bool adopt=true)
Set / change the input list.
Float_t GetUsedCPU() const
Long64_t GetBytes() const
static const TString & GetBinDir()
Get the binary directory in the installation. Static utility function.
static const char * GetMacroPath()
Get macro search path. Static utility function.
static Bool_t Initialized()
Return kTRUE if the TROOT object has been initialized.
Bool_t Notify() override
Check if any of the registered children has changed its state.
void AddPid(Int_t pid)
Add an entry for 'pid' in the internal list.
~TReaperTimer() override
Destructor.
virtual TSQLRow * Next()=0
virtual const char * GetField(Int_t field)=0
static TSQLServer * Connect(const char *db, const char *uid, const char *pw)
The db should be of the form: <dbms>://<host>[:<port>][/<database>], e.g.: mysql://pcroot....
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
Int_t GetLocalPort() override
Get port # to which server socket is bound. In case of error returns -1.
virtual TSocket * Accept(UChar_t Opt=0)
Accept a connection on a server socket.
TShutdownTimer(TProofServ *p, Int_t delay)
Construtor.
Bool_t Notify() override
Handle expiration of the shutdown timer.
ESignals GetSignal() const
virtual Int_t SetOption(ESockOptions opt, Int_t val)
Set socket options.
virtual Int_t Recv(TMessage *&mess)
Receive a TMessage object.
virtual void Close(Option_t *opt="")
Close the socket.
virtual Int_t RecvRaw(void *buffer, Int_t length, ESendRecvOptions opt=kDefault)
Receive a raw buffer of specified length bytes.
virtual Int_t SendRaw(const void *buffer, Int_t length, ESendRecvOptions opt=kDefault)
Send a raw buffer of specified length.
Option_t * GetOption() const override
virtual Int_t SendObject(const TObject *obj, Int_t kind=kMESS_OBJECT)
Send an object.
void SetCompressionSettings(Int_t settings=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
Used to specify the compression level and algorithm: settings = 100 * algorithm + level.
virtual Bool_t IsValid() const
virtual Int_t Send(const TMessage &mess)
Send a TMessage object.
Double_t RealTime()
Stop the stopwatch (if it is running) and return the realtime (in seconds) passed between the start a...
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
Double_t CpuTime()
Stop the stopwatch (if it is running) and return the cputime (in seconds) passed between the start an...
void Stop()
Stop the stopwatch.
TString & Insert(Ssiz_t pos, const char *s)
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
Ssiz_t Last(char c) const
Find last occurrence of a character c.
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
TString & Remove(Ssiz_t pos)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual int Umask(Int_t mask)
Set the process file creation mode mask.
virtual FILE * TempFileName(TString &base, const char *dir=nullptr, const char *suffix=nullptr)
Create a secure temporary file by appending a unique 6 letter string to base.
virtual void AddFileHandler(TFileHandler *fh)
Add a file handler to the list of system file handlers.
virtual Int_t RedirectOutput(const char *name, const char *mode="a", RedirectHandle_t *h=nullptr)
Redirect standard output (stdout, stderr) to the specified file.
virtual const char * GetBuildCompilerVersion() const
Return the build compiler version.
virtual TInetAddress GetSockName(int sock)
Get Internet Protocol (IP) address of host and port #.
virtual Func_t DynFindSymbol(const char *module, const char *entry)
Find specific entry point in specified library.
virtual void Syslog(ELogLevel level, const char *mess)
Send mess to syslog daemon.
static void ResetErrno()
Static function resetting system error number.
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
virtual void Openlog(const char *name, Int_t options, ELogFacility facility)
Open connection to system log daemon.
static Int_t GetErrno()
Static function returning system error number.
virtual void AddIncludePath(const char *includePath)
Add a directory to the already set include path.
virtual int Chmod(const char *file, UInt_t mode)
Set the file permission bits. Returns -1 in case or error, 0 otherwise.
virtual void FreeDirectory(void *dirp)
Free a directory.
virtual void * OpenDirectory(const char *name)
Open a directory. Returns 0 if directory does not exist.
virtual int GetPid()
Get process id.
virtual const char * Getenv(const char *env)
Get environment variable.
virtual const char * GetIncludePath()
Get the list of include path.
virtual int mkdir(const char *name, Bool_t recursive=kFALSE)
Make a file system directory.
virtual int MakeDirectory(const char *name)
Make a directory.
virtual Int_t Exec(const char *shellcmd)
Execute a command.
virtual int GetSysInfo(SysInfo_t *info) const
Returns static system info, like OS type, CPU type, number of CPUs RAM size, etc into the SysInfo_t s...
virtual void SetIncludePath(const char *includePath)
IncludePath should contain the list of compiler flags to indicate where to find user defined header f...
virtual TFileHandler * RemoveFileHandler(TFileHandler *fh)
Remove a file handler from the list of file handlers.
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
virtual TSeqCollection * GetListOfFileHandlers() const
virtual FILE * OpenPipe(const char *command, const char *mode)
Open a pipe.
int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
Get info about a file: id, size, flags, modification time.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual const char * GetDirEntry(void *dirp)
Get a directory entry. Returns 0 if no more entries.
virtual void ExitLoop()
Exit from event loop.
virtual Bool_t ChangeDirectory(const char *path)
Change directory.
virtual int GetProcInfo(ProcInfo_t *info) const
Returns cpu and memory used by this process into the ProcInfo_t structure.
virtual int ClosePipe(FILE *pipe)
Close the pipe.
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual void AddSignalHandler(TSignalHandler *sh)
Add a signal handler to list of system signal handlers.
virtual const char * GetDynamicPath()
Return the dynamic path (used to find shared libraries).
virtual void Exit(int code, Bool_t mode=kTRUE)
Exit the application.
virtual Int_t GetGid(const char *group=nullptr)
Returns the group's id. If group = 0, returns current user's group.
virtual const char * HostName()
Return the system's host name.
virtual Int_t GetUid(const char *user=nullptr)
Returns the user's id. If user = 0, returns current user's id.
virtual void SetDynamicPath(const char *pathname)
Set the dynamic path to a new value.
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
virtual const char * WorkingDirectory()
Return working directory.
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
virtual void Setenv(const char *name, const char *value)
Set environment variable.
virtual const char * GetBuildArch() const
Return the build architecture.
virtual const char * HomeDirectory(const char *userName=nullptr)
Return the user's home directory.
virtual void Abort(int code=0)
Abort the application.
virtual TString GetDirName(const char *pathname)
Return the directory name in pathname.
virtual int Unlink(const char *name)
Unlink, i.e.
virtual void StackTrace()
Print a stack trace.
virtual UserGroup_t * GetUserInfo(Int_t uid)
Returns all user info in the UserGroup_t structure.
virtual const char * TempDirectory() const
Return a user configured or systemwide directory to create temporary files in.
char * DynamicPathName(const char *lib, Bool_t quiet=kFALSE)
Find a dynamic library called lib using the system search paths.
The TTimeStamp encapsulates seconds and ns since EPOCH.
Handles synchronous and a-synchronous timer events.
virtual void Start(Long_t milliSec=-1, Bool_t singleShot=kFALSE)
Starts the timer with a milliSec timeout.
virtual void TurnOn()
Add the timer to the system timer list.
void Reset()
Reset the timer.
This class represents a WWW compatible URL.
const char * GetHostFQDN() const
Return fully qualified domain name of url host.
const char * GetProtocol() const
Abstract interface for the PROOF player.
virtual void AddInput(TObject *inp)=0
virtual TQueryResult * GetCurrentQuery() const =0
virtual Int_t GetLearnEntries()=0
virtual TList * GetInputList() const =0
virtual void UpdateProgressInfo()=0
virtual Long64_t GetEventsProcessed() const =0
virtual void SetMerging(Bool_t on=kTRUE)=0
virtual EExitStatus GetExitStatus() const =0
virtual void AddQueryResult(TQueryResult *q)=0
static TVirtualProofPlayer * Create(const char *player, TProof *p, TSocket *s=0)
Create a PROOF player.
virtual void RemoveQueryResult(const char *ref)=0
virtual Int_t SavePartialResults(Bool_t queryend=kFALSE, Bool_t force=kFALSE)=0
virtual void StopProcess(Bool_t abort, Int_t timeout=-1)=0
virtual Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)=0
virtual TProofProgressStatus * GetProgressStatus() const =0
TClass * IsA() const override
virtual void SetOutputFilePath(const char *fp)=0
virtual TList * GetOutputList() const =0
virtual void SetCurrentQuery(TQueryResult *q)=0
virtual Long64_t GetCacheSize()=0