13#ifndef ROOT_TProofServ
14#define ROOT_TProofServ
188 const char *selec,
TObject *elist);
306 void Reset(
const char *dir);
#define ClassDef(name, id)
R__EXTERN TProofServ * gProofServ
Int_t(* OldProofServAuthSetup_t)(TSocket *, Bool_t, Int_t, TString &, TString &, TString &)
static struct mg_connection * fc(struct mg_context *ctx)
This class creates the ROOT Application Environment that interfaces to the windowing system eventloop...
Manages an element of a TDSet.
This class implements a data set to be used for PROOF processing.
Class that contains a list of TFileInfo's and accumulated meta data information about its entries.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
virtual ~TIdleTOTimerGuard()
TIdleTOTimer * fIdleTOTimer
TIdleTOTimerGuard(TIdleTOTimer *t)
Bool_t Notify()
Handle expiration of the idle timer. The session will just be terminated.
TIdleTOTimer(TProofServ *p, Int_t delay)
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
The TNamed class is the base class for all named ROOT classes.
Mother of all ROOT objects.
The PROOF package manager contains tools to manage packages.
TList * GetListOfEnabled() const
Get list of enabled packages Returns a pointer to a TList object, transferring ownership to the calle...
TProofLockPathGuard(TProofLockPath *l)
Int_t Unlock()
Unlock the directory.
TProofLockPath(const char *path)
Int_t Lock()
Locks the directory.
TQueryResult version adapted to PROOF neeeds.
Version of the PROOF worker server for local running.
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.
Bool_t Notify()
Handle available message in the open file.
Bool_t ReadNotify()
Notify when something can be read from the descriptor associated with this handler.
virtual ~TProofServLogHandler()
Handle available message in the open file.
TProofServLogHandler(const char *cmd, TSocket *s, const char *pfx="")
Execute 'cmd' in a pipe and handle output messages from the related 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.
Class providing the PROOF server.
Int_t GetLogLevel() const
const char * GetOrdinal() const
virtual ~TProofServ()
Cleanup.
void SetIdle(Bool_t st=kTRUE)
Change the idle status.
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.
TList * GetEnabledPackages() const
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
virtual void DisableTimeout()
Bool_t IsWaiting()
Return kTRUE if the session is waiting for the OK to start processing.
const char * GetTopSessionTag() const
void Print(Option_t *option="") const
Print status of slave server.
static void ErrorHandler(Int_t level, Bool_t abort, const char *location, const char *msg)
The PROOF error handler function.
static Long_t fgResMemMax
Float_t GetCpuTime() const
virtual void ReleaseWorker(const char *)
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.
TProof * GetProof() const
static void GetLocalServer(TString &dsrv)
Extract LOCALDATASERVER info in 'dsrv'.
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.
Int_t GetActSessions() const
static FILE * SetErrorHandlerFile(FILE *ferr)
Set the file stream where to log (default stderr).
Float_t GetEffSessions() const
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.
const char * GetDataDirOpts() const
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.
Float_t GetRealTime() const
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 .
Int_t UnloadPackage(const char *package)
static void ResolveKeywords(TString &fname, const char *path=0)
Replace <ord>, <user>, , <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 void HandleQueryList(TMessage *mess)
Handle request for list of queries.
virtual void HandleTermination()
const char * GetDataDir() const
Int_t GetTotSessions() 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.
Long64_t GetMsgSizeHWM() const
Int_t GetGroupSize() const
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 EnableTimeout()
const char * GetConfFile() const
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
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
TPackMgr * GetPackMgr() const
void GetOptions(Int_t *argc, char **argv)
Get and handle command line options.
virtual Int_t Setup()
Print the ProofServ logo on standard output.
TProofLockPath * GetCacheLock()
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.
const char * GetCacheDir() const
static Long_t GetVirtMemMax()
VirtMemMax getter.
const char * GetSessionDir() const
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.
virtual void Terminate(Int_t status)
Terminate the proof server.
virtual void HandleException(Int_t sig)
Exception handler: we do not try to recover here, just exit.
Int_t OldAuthSetup(TString &wconf)
Setup authentication related stuff for old versions.
static TString fgSysLogEntity
Int_t WaitingQueries()
Return the number of waiting queries.
void Run(Bool_t retrn=kFALSE)
Main server eventloop.
const char * GetWorkDir() const
const char * GetPrefix() const
static TString fgSysLogService
void LogToMaster(Bool_t on=kTRUE)
TReaperTimer * fReaperTimer
static Long64_t fgLastEntry
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.
Class managing the query-result area.
A container class for query results.
TReaperTimer(Long_t frequency=1000)
Bool_t Notify()
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.
virtual ~TReaperTimer()
Destructor.
TShutdownTimer(TProofServ *p, Int_t delay)
Construtor.
Bool_t Notify()
Handle expiration of the shutdown timer.
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.
Abstract interface for the PROOF player.
This class implements the XProofD version of TProofServ, with respect to which it differs only for th...
static constexpr double s