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()) {
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");
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;
3448 fpath.Form(
"%s/%s", path, ent);
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())) {
4210 TList *added =
dynamic_cast<TList *
>(
input->FindObject(
"PROOF_InputObjsFromFile"));
4218 while ((o =
nxo())) {
input->Remove(o); }
4219 input->Remove(added);
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")) {
6988 const char *pname =
GetName();
6996 SysError(
"Lock",
"cannot open lock file %s", pname);
7003#if !defined(R__WIN32) && !defined(R__WINGCC)
7005 SysError(
"Lock",
"error locking %s", pname);
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
void Clear(Option_t *option="") override
Remove all objects from the list.
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 * Last() const override
Return the last object in the list. Returns 0 when list is empty.
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