47 const char *workdir,
const char *msd,
Int_t nwk)
50 proof, stype, workdir, msd, nwk)));
68void TXSlave::DoError(
int level,
const char *location,
const char *fmt, va_list va)
const
90 Info(
"Notify",
"Processing interrupt signal ...");
104 const char *workdir,
const char *msd,
Int_t nwk) :
TSlave()
146 Info(
"Init",
"service 'proofd' not found by GetServiceByName"
147 ": using default IANA assigned tcp port 1093");
151 Info(
"Init",
"port from GetServiceByName: %d", port);
189 iam =
"Local Client";
190 mode = (attach) ?
'A' :
'M';
192 Error(
"Init",
"Impossible PROOF <-> SlaveType Configuration Requested");
213 for (
TObject *o = next(); o != 0; o = next()) {
224 Info(
"Init",
"** NOT ** sending user envs - RemoteProtocol : %d",
230 alias +=
Form(
"|envs:%s", envlist.
Data());
237 Error(
"Init",
"while opening the connection to %s - exit", url.
GetUrl(
kTRUE));
245 Error(
"Init",
"some severe error occurred while opening "
261 Info(
"Init",
"user envs setting sent but unsupported remotely - RemoteProtocol : %d",
310 TString dpu = (ilog !=
kNPOS) ? buffer(0, ilog) : buffer;
315 buffer.
Remove(0, ilog +
sizeof(
"|log:") - 1);
321 Warning(
"ParseBuffer",
"expected log path not found in received startup buffer!");
340 Error(
"SetupServ",
"failed to receive slave startup message");
355 Error(
"SetupServ",
"incompatible PROOF versions (remote version "
434 Info(
"Interrupt",
"%p: deactivating from monitor %p",
this, mon);
439 Warning(
"Interrupt",
"%p: reference to PROOF missing",
this);
449 Info(
"Interrupt",
"Interrupt of type %d sent",
type);
462 Info(
"StopProcess",
"Request of type %d sent over", abort);
474 Int_t len =
sizeof(cproto);
475 memcpy((
char *)&cproto,
479 ::Error(
"TXSlave::GetProofdProtocol",
480 "sending %d bytes to proofd server [%s:%d]",
490 ::Error(
"TXSlave::GetProofdProtocol",
491 "reading %d bytes from proofd server [%s:%d]",
501 len =
sizeof(rproto);
504 ::Error(
"TXSlave::GetProofdProtocol",
505 "reading %d bytes from proofd server [%s:%d]",
513 ::Info(
"TXSlave::GetProofdProtocol",
514 "remote proofd: buf1: %d, buf2: %d rproto: %d",
574 Printf(
"Proof: connection to master at %s:%d re-established",
577 Printf(
"Proof: connection to node '%s' at %s:%d re-established",
586 Info(
"HandleError",
"%p:%s:%s got called ... fProof: %p, fSocket: %p (valid: %d)",
600 Info(
"HandleError",
"%p: proof: %p",
this,
fProof);
614 TString msg(
Form(
"Worker '%s-%s' has been removed from the active list",
621 Warning(
"HandleError",
"%p: global reference to TProofServ missing",
this);
624 Warning(
"HandleError",
"%p: reference to PROOF missing",
this);
627 Printf(
"TXSlave::HandleError: %p: DONE ... ",
this);
644 Info(
"HandleInput",
"%p: %s: proof: %p, mon: %p",
650 Info(
"HandleInput",
"%p: %s: posting monitor %p",
this,
GetOrdinal(), mon);
656 Info(
"HandleInput",
"%p: %s: not active in current monitor"
657 " - calling TProof::CollectInputFrom",
660 Info(
"HandleInput",
"%p: %s: calling TProof::CollectInputFrom",
669 Warning(
"HandleInput",
"%p: %s: reference to PROOF missing",
this,
GetOrdinal());
683 Info(
"SetInterruptHandler",
"enter: %d", on);
UShort_t net2host(UShort_t x)
void ErrorHandler(int level, const char *location, const char *fmt, std::va_list va)
General error handler function. It calls the user set error handler.
R__EXTERN TProofServ * gProofServ
const Int_t kPROOF_Protocol
R__EXTERN TVirtualMutex * gROOTMutex
char * Form(const char *fmt,...)
void Printf(const char *fmt,...)
R__EXTERN TSystem * gSystem
#define R__LOCKGUARD(mutex)
TSlave * GetTXSlave(const char *url, const char *ord, Int_t perf, const char *image, TProof *proof, Int_t stype, const char *workdir, const char *msd, Int_t nwk)
static XSlaveInit xslave_init
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
void SetReady(TSocket *sock)
Called by TSocketHandler::Notify() to signal which socket is ready to be read or written.
virtual void DeActivate(TSocket *sock)
De-activate a socket.
TList * GetListOfActives() const
Returns a list with all active sockets.
Bool_t IsActive(TSocket *s) const
Check if socket 's' is in the active list.
The TNamed class is the base class for all named ROOT classes.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
virtual const char * GetTitle() const
Returns title of object.
virtual const char * GetName() const
Returns name of object.
Collectable string class.
Mother of all ROOT objects.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
virtual Int_t GetRemoteProtocol() const
TSocket * GetSocket() const
This class controls a Parallel ROOT Facility, PROOF, cluster.
TMonitor * fCurrentMonitor
void SetDataPoolUrl(const char *url)
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.
TSignalHandler * fIntHandler
Int_t GetLogLevel() const
TProofMgr::EServType fServType
static const TList * GetEnvVars()
Get environemnt variables.
static void DelEnvVar(const char *name)
Remove an variable from the list of environment variables passed to proofserv on the master and slave...
Int_t CollectInputFrom(TSocket *s, Int_t endtype=-1, Bool_t deactonfail=kFALSE)
Collect and analyze available input from socket s.
virtual void Add()
Add signal handler to system signal handler list.
virtual void Remove()
Remove signal handler from system signal handler list.
Class describing a PROOF worker server.
static void SetTXSlaveHook(TSlave_t xslavehook)
Set hook to TXSlave ctor.
const char * GetName() const
Returns name of object.
virtual Bool_t IsValid() const
const char * GetOrdinal() const
virtual Int_t SetOption(ESockOptions opt, Int_t val)
Set socket options.
virtual Int_t Recv(TMessage *&mess)
Receive a TMessage object.
static Int_t GetClientProtocol()
Static method returning supported client protocol.
Int_t GetRemoteProtocol() const
virtual void Close(Option_t *opt="")
Close the socket.
TInetAddress GetInetAddress() const
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.
virtual Bool_t IsValid() const
virtual Int_t Send(const TMessage &mess)
Send a TMessage object.
Int_t Atoi() const
Return integer value of string.
const char * Data() const
Bool_t IsDigit() const
Returns true if all characters in string are digits (0-9) or white spaces, i.e.
Ssiz_t Last(char c) const
Find last occurrence of a character c.
TString & Remove(Ssiz_t pos)
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 GetServiceByName(const char *service)
Get port # of internet service.
virtual void AddFileHandler(TFileHandler *fh)
Add a file handler to the list of system file handlers.
virtual const char * Getenv(const char *env)
Get environment variable.
This class represents a WWW compatible URL.
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
void SetProtocol(const char *proto, Bool_t setDefaultPort=kFALSE)
Set protocol and, optionally, change the port accordingly.
const char * GetPasswd() const
const char * GetHostFQDN() const
Return fully qualified domain name of url host.
const char * GetOptions() const
const char * GetProtocol() const
TXSlaveInterruptHandler(TXSocket *s=0)
Bool_t Notify()
TXSlave interrupt handler.
This is the version of TSlave for workers servers based on XProofD.
void StopProcess(Bool_t abort, Int_t timeout)
Sent stop/abort request to PROOF server.
void Touch()
Touch the client admin file to proof we are alive.
void SetAlias(const char *alias)
Set an alias for this session.
void Interrupt(Int_t type)
Send interrupt to master or slave servers.
Int_t SetupServ(Int_t stype, const char *conffile)
Init a PROOF slave object.
Bool_t HandleError(const void *in=0)
Handle error on the input socket.
void SetInterruptHandler(Bool_t on=kTRUE)
Set/Unset the interrupt handler.
virtual ~TXSlave()
Destroy slave.
static Int_t GetProofdProtocol(TSocket *s)
Find out the remote proofd protocol version.
Int_t Ping()
Ping the remote master or slave servers.
void Close(Option_t *opt="")
Close slave socket.
Bool_t HandleInput(const void *in=0)
Handle asynchronous input on the socket.
TSignalHandler * fIntHandler
TObjString * SendCoordinator(Int_t kind, const char *msg=0, Int_t int2=0)
Send message to intermediate coordinator.
void ParseBuffer()
Parse fBuffer after a connection attempt.
void DoError(int level, const char *location, const char *fmt, va_list va) const
Interface to ErrorHandler (protected).
void Init(const char *host, Int_t stype)
Init a PROOF slave object.
void FlushSocket()
Clean any input on the socket.
Int_t SendGroupPriority(const char *grp, Int_t priority)
Communicate to the coordinator the priprity of the group to which the user belongs Return 0 on succes...
Int_t Flush(TSocket *s)
Remove any reference to socket 's' from the global pipe and ready-socket queue.
Input handler for XProofD sockets.
static TXSocketHandler * GetSocketHandler(TFileHandler *h=0, TSocket *s=0)
Get an instance of the input socket handler with 'h' as handler, connected to socket 's'.
High level handler of connections to XProofD.
static void SetLocation(const char *loc="")
Set location string.
void SetInterrupt(Bool_t i=kTRUE)