Skip to content

Commit

Permalink
Vector debug and tracing messages via the logger to allow forwarding.
Browse files Browse the repository at this point in the history
  • Loading branch information
abh3 committed Nov 3, 2016
1 parent 2fe6247 commit d061873
Show file tree
Hide file tree
Showing 13 changed files with 135 additions and 213 deletions.
1 change: 0 additions & 1 deletion src/XrdSsi.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ add_library(
XrdSsi/XrdSsiClient.cc
XrdSsi/XrdSsiCluster.hh
XrdSsi/XrdSsiCms.cc XrdSsi/XrdSsiCms.hh
XrdSsi/XrdSsiDebug.cc XrdSsi/XrdSsiDebug.hh
XrdSsi/XrdSsiErrInfo.hh
XrdSsi/XrdSsiEvent.cc XrdSsi/XrdSsiEvent.hh
XrdSsi/XrdSsiLogger.cc XrdSsi/XrdSsiLogger.hh
Expand Down
82 changes: 55 additions & 27 deletions src/XrdSsi/XrdSsiClient.cc
Original file line number Diff line number Diff line change
Expand Up @@ -40,29 +40,38 @@
#include "XrdNet/XrdNetAddr.hh"

#include "XrdSsi/XrdSsiAtomics.hh"
#include "XrdSsi/XrdSsiDebug.hh"
#include "XrdSsi/XrdSsiLogger.hh"
#include "XrdSsi/XrdSsiProvider.hh"
#include "XrdSsi/XrdSsiServReal.hh"
#include "XrdSsi/XrdSsiTrace.hh"

#include "XrdSys/XrdSysLogger.hh"
#include "XrdSys/XrdSysLogging.hh"
#include "XrdSys/XrdSysError.hh"
#include "XrdSys/XrdSysPthread.hh"
#include "XrdSys/XrdSysTrace.hh"

/******************************************************************************/
/* N a m e S p a c e G l o b a l s */
/******************************************************************************/

namespace XrdSsi
{
XrdSysMutex clMutex;
XrdScheduler *schedP = 0;
XrdCl::Env *clEnvP = 0;
short maxTCB = 300;
short maxCLW = 30;
Atomic(bool) initDone(false);
bool dsTTLSet = false;
bool reqTOSet = false;
bool strTOSet = false;
extern XrdSysError Log;
extern XrdSysLogger *Logger;
extern XrdSysTrace Trace;
extern XrdSsiLogger::MCB_t *msgCB;
extern XrdSsiLogger::MCB_t *msgCBCl;

XrdSysMutex clMutex;
XrdScheduler *schedP = 0;
XrdCl::Env *clEnvP = 0;
short maxTCB = 300;
short maxCLW = 30;
Atomic(bool) initDone(false);
bool dsTTLSet = false;
bool reqTOSet = false;
bool strTOSet = false;
}

using namespace XrdSsi;
Expand Down Expand Up @@ -100,6 +109,7 @@ virtual void SetTimeout(tmoType what, int tmoval);
virtual ~XrdSsiClientProvider() {}

private:
void SetLogger();
void SetScheduler();
};

Expand All @@ -121,6 +131,7 @@ XrdSsiService *XrdSsiClientProvider::GetService(XrdSsiErrInfo &eInfo,
//
if (!Atomic_GET(initDone))
{clMutex.Lock();
if (!Logger) SetLogger();
if (!schedP) SetScheduler();
if (!clEnvP) clEnvP = XrdCl::DefaultEnv::GetEnv();
if (!dsTTLSet) clEnvP->PutInt("DataServerTTL", maxTMO);
Expand Down Expand Up @@ -168,21 +179,13 @@ void XrdSsiClientProvider::SetCBThreads(int cbNum, int ntNum)
clMutex.UnLock();
}
}

/******************************************************************************/
/* X r d S s i C l i e n t P r o v i d e r : : S e t S c h e d u l e r */
/* X r d S s i C l i e n t P r o v i d e r : : S e t L o g g e r */
/******************************************************************************/

namespace
{
XrdSysError myLog(0, "Ssi");

XrdOucTrace myTrc(&myLog);
}

void XrdSsiClientProvider::SetScheduler()
void XrdSsiClientProvider::SetLogger()
{
XrdSysLogger *logP;
int eFD;

// Get a file descriptor mirroring standard error
Expand All @@ -196,16 +199,41 @@ void XrdSsiClientProvider::SetScheduler()

// Now we need to get a logger object. We make this a real dumb one.
//
logP = new XrdSysLogger(eFD, 0);
myLog.logger(logP);
Logger = new XrdSysLogger(eFD, 0);
Log.logger(Logger);
Trace.SetLogger(Logger);
if (getenv("XRDSSIDEBUG") != 0) Trace.What = TRACESSI_Debug;

// Check for a message callback object. This must be set at global init time.
//
if (msgCBCl)
{XrdSysLogging::Parms logParms;
msgCB = msgCBCl;
logParms.logpi = msgCBCl;
logParms.bufsz = 0;
XrdSysLogging::Configure(*Logger, logParms);
}
}

/******************************************************************************/
/* X r d S s i C l i e n t P r o v i d e r : : S e t S c h e d u l e r */
/******************************************************************************/

// This may not be called before the logger object is created!

void XrdSsiClientProvider::SetScheduler()
{
static XrdOucTrace myTrc(&Log);

// Now construct the proper trace object
// Now construct the proper trace object (note that we do not set tracing if
// message forwarding is on because these messages will not be forwarded).
// This must be fixed when xrootd starts using XrdSysTrace!!!
//
if (XrdSsi::DeBug.isON) myTrc.What = TRACE_SCHED;
if (!msgCBCl && Trace.What & TRACESSI_Debug) myTrc.What = TRACE_SCHED;

// We can now set allocate a scheduler
//
XrdSsi::schedP = new XrdScheduler(&myLog, &myTrc);
XrdSsi::schedP = new XrdScheduler(&Log, &myTrc);

// Set thread count for callbacks
//
Expand Down Expand Up @@ -242,7 +270,7 @@ void XrdSsiClientProvider::SetTimeout(XrdSsiProvider::tmoType what, int tmoval)
// Set requested timeout
//
switch(what)
{case connect_N: clEnvP->PutInt("onnectionRetry", tmoval);
{case connect_N: clEnvP->PutInt("ConnectionRetry", tmoval);
break;
case connect_T: clEnvP->PutInt("ConnectionWindow", tmoval);
break;
Expand Down
36 changes: 0 additions & 36 deletions src/XrdSsi/XrdSsiDebug.cc

This file was deleted.

88 changes: 0 additions & 88 deletions src/XrdSsi/XrdSsiDebug.hh

This file was deleted.

3 changes: 1 addition & 2 deletions src/XrdSsi/XrdSsiFileReq.cc
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@

namespace XrdSsi
{
extern XrdOucTrace Trace;
extern XrdSysError Log;
extern XrdScheduler *Sched;
};
Expand Down Expand Up @@ -854,7 +853,7 @@ void XrdSsiFileReq::WakeUp() // Called with reqMutex locked!

// Do some debugging
//
DEBUGXQ("respCBarg=" <<hex <<respCBarg <<dec);
DEBUGXQ("respCBarg=" <<Xrd::hex <<respCBarg <<Xrd::dec);

// Setup the wakeup data. If this is the complete response, then make sure we
// get a callback to do the finalization. Otherwise, we don't need a callback
Expand Down
3 changes: 1 addition & 2 deletions src/XrdSsi/XrdSsiFileSess.cc
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@ namespace XrdSsi
extern XrdOucBuffPool *BuffPool;
extern XrdSsiService *Service;
extern XrdSysError Log;
extern XrdOucTrace Trace;
extern int respWT;
};

Expand Down Expand Up @@ -446,7 +445,7 @@ int XrdSsiFileSess::open(const char *path, // In
snprintf(gBuff, sizeof(gBuff), "%s:%s", fsUser, path);
gigID = strdup(gBuff);
}
DEBUG(gigID);
DEBUG(gigID <<" provisioned.");
isOpen = true;
return SFS_OK;
}
Expand Down
22 changes: 15 additions & 7 deletions src/XrdSsi/XrdSsiLogger.cc
Original file line number Diff line number Diff line change
Expand Up @@ -32,32 +32,32 @@
#include <stdarg.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>

#include "XrdVersion.hh"
#include "XrdCl/XrdClDefaultEnv.hh"
#include "XrdCl/XrdClLog.hh"
#include "XrdOuc/XrdOucEnv.hh"
#include "XrdOuc/XrdOucStream.hh"
#include "XrdOuc/XrdOucTrace.hh"
#include "XrdSsi/XrdSsiSfsConfig.hh"
#include "XrdSsi/XrdSsiLogger.hh"
#include "XrdSys/XrdSysError.hh"
#include "XrdSys/XrdSysHeaders.hh"
#include "XrdSys/XrdSysLogger.hh"
#include "XrdSys/XrdSysLogPI.hh"
#include "XrdSys/XrdSysPlugin.hh"
#include "XrdSys/XrdSysPthread.hh"
#include "XrdSys/XrdSysTrace.hh"

/******************************************************************************/
/* G l o b a l O b j e c t s */
/******************************************************************************/

namespace XrdSsi
{
XrdSysError Log(0);
XrdSysLogger *Logger;
XrdOucTrace Trace(&Log);
XrdSsiLogger::MCB_t *msgCB = 0;
XrdSysError Log(0, "ssi_");
XrdSysLogger *Logger = 0;
XrdSysTrace Trace("Ssi", Logger);
XrdSsiLogger::MCB_t *msgCB = 0;
XrdSsiLogger::MCB_t *msgCBCl = 0;
}

using namespace XrdSsi;
Expand Down Expand Up @@ -170,6 +170,13 @@ void XrdSsiLogger::Msgv(const char *pfx, const char *fmt, va_list aP)
else Log.Say(buffer);
}

/******************************************************************************/

void XrdSsiLogger::Msgv(struct iovec *iovP, int iovN)
{
Logger->Put(iovN, iovP);
}

/******************************************************************************/
/* S e t M C B */
/******************************************************************************/
Expand All @@ -188,6 +195,7 @@ bool XrdSsiLogger::SetMCB(XrdSsiLogger::MCB_t &mcbP,
{XrdCl::Log *logP = XrdCl::DefaultEnv::GetLog();
if (!logP) return false;
logP->SetOutput(new LogMCB(&mcbP));
msgCBCl = mcbP;
}

// All done
Expand Down

0 comments on commit d061873

Please sign in to comment.