Document ID: 263307
http://support.veritas.com/docs/263307
E-Mail Colleague IconE-Mail this document to a colleague

How to read a UNIX Agent debug log

Details:
General Information about the UNIX Agent

The VERITAS Backup Exec (tm) Agent for UNIX uses the VERITAS Generic Remote File System (GRFS).

The UNIX agent advertises to the media server by broadcasting the resource name (configured in the tell line of agent.cfg), the IP address, and the source address of the broadcast, and then disconnects. It loops this process in a time frame determined by the tell interval assigned in the agent.cfg file. Every time the broadcast loop runs, this information is updated in the memory of the UNIX server.

For information on installing the UNIX Agent, instructions for placing the UNIX Agent in debug mode, and general troubleshooting, see the Related Documents section.


How to read the UNIX Agent Debug

Initially, the debug file will list the version and revision number of the UNIX Agent (Figure 1).

Figure 1
_____________________________________________________________________________
                  Logfile.txt
Backup Exec -- Unix Agent, Version 5.01 Revision 5.046
Copyright 2001 VERITAS Software Corporation. All Rights Reserved.
_____________________________________________________________________________


The next line of the debug should display the tell interval (listed in seconds), set in the agent.cfg file on the UNIX server (Figure 2).

Figure 2
_____________________________________________________________________________
064: interval between advertisements is 30
_____________________________________________________________________________


The next segment of the debug is the excludes listing. Excludes will be different for each operating system. For example, Red Hat 8.0 will have a different excludes list as compared to Solaris 9 (Figure 3).

Figure 3
_____________________________________________________________________________
2064:Excluding directory /dev
2064:Excluding directory /proc
_____________________________________________________________________________


The next major area of interest is Agent Configuration and Workstation Name settings. The Workstation Name is populated by the Agent.cfg file, but it is not necessarily the name of the workstation or server it is installed on. It is just what it was called during the install of the agent (Figure 4).

Figure 4
_____________________________________________________________________________
./agent.be: Agent Configuration OK.
./agent.be: Workstation Name: "SERVERNAME"
_____________________________________________________________________________


The initialization of the advertisement process appears next in the debug. The important item is the Gethostbyname line, which will indicate if there is a Domain Name Service (DNS) or name resolution problem if the IP address of the host is not correct (Figure 5).

Figure 5
_____________________________________________________________________________
Initializing Advertisement Sending Process
gethostbyname returned 0x42132478
address of 192.168.1.1 is 2064: inet_ntoa issues
len and maxlen are 16
NRL: IP Address of host (192.168.1.1)2064: is (192.168.1.1.23.213)
NRLInitialize returning 0
Add Resource function called
resource local tlifd is **6**
t_alloc_v returning 0x80650f8
t_alloc_v returning 0x8065128
Binding to all interfaces
resource_ptr->info.local.call=8065128
binding port 8192
bind returned 0
errno=0
calling listen with qlen=0
AddRes bind returned 0
address=0.0.0.0.32.0
./agent.be:Backup Exec Agent ready to service requests
_____________________________________________________________________________


When reviewing the IP address of the host line, note the number 23.213 at the end of the address. This indicates the port being used by GRFS. Convert 23 to binary (10111) and convert 213 to binary (11010101), combine the two into one long binary number (1011111010101), and then convert that to decimal. The decimal number will be 6101, which is the default GRFS port. The GRFS port is determined by the /etc/services file.

An example of a general advertisement loop is displayed in Figure 6.

Figure 6
_____________________________________________________________________________
NRLAdvertisementSender - main-loop resource 2045RH90CJLS
tli open 2065: rc=8 2065: tlifd=8 2065:
t_alloc_v returning 0x8065170
Advertiser binding to all interfaces
binding port 8193
bind returned -1
errno=98
binding port 8194
bind returned 0
errno=0
NRLAdvertisementSender: bind returned 0
address=0.0.0.0.32.2
tli bind 2065: rc=0 2065: tlifd=8 2065:
t_alloc_v(T_CALL, T_OPT) not supported
t_alloc_v(T_CALL, T_UDATA) not supported
t_alloc_v returning 0x80651a0
NRLAdvertisementSender: tempaddr=0.0.0.0.32.0
NRLAdvertisementSender: 'merged' alloc_uaddr=172.0.0.1.32.0
advertisement size is 52
rcvr addr=192.168.1.1.23.213
attempting to connect. state=0
tli connect 2065:rc=0 2065: tlifd=8 2065:
Max TLI send is 0xFFFF
tli snd 2065: rc=58 2065: tlifd=8 2065:
tli sndrel 2065: rc=0 2065: tlifd=8 2065:
dummy t_rcv_v not necessary
tli rcvdis 2065: rc=0 2065: tlifd=8 2065:
tli free 2065: rc=0 2065: tlifd=8 2065:
tli free bind 2065: rc=0 2065: tlifd=8 2065:
tli unbind 2065: rc=0 2065: tlifd=8 2065:
tli close 2065: rc=0 2065: tlifd=8 2065:
loop reading adv_rate_pipe
read returned -1
errno=11
loop reading adv_rate_pipe returned 2
_____________________________________________________________________________


During the actual backup or restore operation, there is a section in the log where directory enumeration is shown. This can easily be found by searching the log file for the word "skipping." The agent will enumerate while browsing the server as well as during backups. This enumeration process will access volumes, in order, until reaching its target (seen after the word "object") (Figure 7).

Figure 7
_____________________________________________________________________________
32200:grfs_xdr_message: spec_msg_size=18 msg_type=0x5
32200:Decoded message: msg_len=20 cmd=GRFS_FIND_FIRST_OBJ
32200:FindObject: hdir=8088ae8
32200:FindFirstUnix(/*.*)
32200:telldir() for '/' = 0
32200:Object(/.)  dev=0x301 mode=0x0
_____________________________________________________________________________


After the first block, it will reiterate through the directory structure and select the next object (Figure 8).

Figure 8
_____________________________________________________________________________
32200:hdir->path is '/' dta.achName is '.'
32200:SkipObject(.): attrFile=0x10
32200:Skipping .
32200:Object(/..)  dev=0x301 mode=0x0
32200:hdir->path is '/' dta.achName is '..'
32200:SkipObject(..): attrFile=0x10
32200:Skipping .
32200:Skipping ..
32200:Object(/lost+found)  dev=0x301 mode=0x0
32200:hdir->path is '/' dta.achName is 'lost+found'
32200:SkipObject(lost+found): attrFile=0x10
32200:SkipObject: dta->stat_info.st_dev=769 gb_root_dev_id=0
32200:FindObject: returning DBLK dblk_actual_size=258 find_info=176 find_info_size=4, hdir=8088ae8
32200:SendMessage GRFS_FIND_OBJ_STAT (270 bytes) retcode 0
32200:Versioned dir dblk osinfo type, os_spec_size=67 dirInfoSize=56
32200:grfs_xdr_message: spec_msg_size=262 msg_type=0x45
32200:Versioned dir dblk osinfo type, os_spec_size=67 dirInfoSize=56
32200: {Use.32200: ..SendMsg32200: }32200: NRLSendMessage: data_size=270
32200: allocating bigger buffer 270
32200: getting msg to send
32200: calling loop_t_snd(274)
32200:         session->max_tsnd=65535
32200: tli snd 32200: rc=274 32200: tlifd=7 32200:
32200: MsgSender returning 0
32200: {Release Send}32200: Rcv 32200: {Use.32200: ..RcvMsg32200: }32200: waiting for msg on 7
32200: tli rcv 32200: rc=4 32200: tlifd=7 32200:
32200: t_rcv_v returned 0
32200: msg_hdr.type = 0
32200: waiting to t_rcv_v data (270 bytes)
32200: tli rcv 32200: rc=270 32200: tlifd=7 32200:
32200: t_rcv_v for data returned 0
32200: msg after t_rcv_v = <         >
32200: RecvCmpt() 32200: {Release RcvMsg}32200: NRLReceiveMsg returning 0
32200:
_____________________________________________________________________________


The next iteration will skip ., .., lost + found, dev (which is part of the excludes list), and reach object /home (Figure 9).

Figure 9
_____________________________________________________________________________
ProcessGRFSMsg (270 bytes)
32200:grfs_xdr_message: spec_msg_size=270 msg_type=0x6
32200:Versioned dir dblk osinfo type, os_spec_size=67 dirInfoSize=56
32200:after xdr_GRFS_GEN_DBLK(): should_be_size=262
32200:Decoded message: msg_len=270 cmd=GRFS_FIND_NEXT_OBJ
32200:Versioned dir dblk osinfo type, os_spec_size=67 dirInfoSize=56
32200:FindObject: hdir=8088ae8
32200:FindObject: inp_grdblk->dblk_actual_size=258
32200:FindObject: find_info=176 find_info_size=4
32200:Skipping .
32200:Skipping ..
32200:Skipping lost+found
32200:Object(/dev)  dev=0x301 mode=0x0
32200:hdir->path is '/' dta.achName is 'dev'
32200:SkipObject(dev): attrFile=0x10
32200:SkipObject: check_exclude_list() == TRUE
32200:Skipping .
32200:Skipping ..
32200:Skipping lost+found
32200:Skipping dev
32200:Object(/home)  dev=0x342 mode=0x0
32200:hdir->path is '/' dta.achName is 'home'
32200:SkipObject(home): attrFile=0x10
32200:ustat(): stat=0 f_tfree=127732 f_tinode=127732 f_fname=[0][0][0]
32200:FindObject: returning DBLK dblk_actual_size=246 find_info=176 find_info_size=4, hdir=8088ae8
32200:SendMessage GRFS_FIND_OBJ_STAT (258 bytes) retcode 0
32200:Versioned dir dblk osinfo type, os_spec_size=61 dirInfoSize=56
32200:grfs_xdr_message: spec_msg_size=250 msg_type=0x45
32200:Versioned dir dblk osinfo type, os_spec_size=61 dirInfoSize=56
32200: {Use.32200: ..SendMsg32200: }32200: NRLSendMessage: data_size=258
32200: getting msg to send
32200: calling loop_t_snd(262)
32200:         session->max_tsnd=65535
32200: tli snd 32200: rc=262 32200: tlifd=7 32200:
32200: MsgSender returning 0
32200: {Release Send}32200: Rcv 32200: {Use.32200: ..RcvMsg32200: }32200: waiting for msg on 7
32200: tli rcv 32200: rc=4 32200: tlifd=7 32200:
32200: t_rcv_v returned 0
32200: msg_hdr.type = 0
32200: waiting to t_rcv_v data (258 bytes)
32200: tli rcv 32200: rc=258 32200: tlifd=7 32200:
32200: t_rcv_v for data returned 0
32200: msg after t_rcv_v = <         >
32200: RecvCmpt() 32200: {Release RcvMsg}32200: NRLReceiveMsg returning 0
32200:
_____________________________________________________________________________


If Interrupt X appears, where X is a number, the agent process has been killed with the X being the kill code. For example, Interrupt 9 indicates that a kill -9 was run on the agent process (Figure 10).

Figure 10
_____________________________________________________________________________
interrupt 2 occurred in process 727
727: Inside RemoveNRL
727: removing local resources
727: NRLRemoveResource
_____________________________________________________________________________


Products Applied:
 Backup Exec for Windows Servers 8.0, 8.5, 8.6, 9.0, 9.1

Last Updated: October 01 2004 04:30 PM GMT
Expires on: 365 days from publish date
Subscribe Via E-Mail IconSubscribe to receive critical updates about this document

Subjects:
 Backup Exec for Windows Servers
   Agent For Unix-Mac: Troubleshoot
   Application: Agent Support, Unix Agent

Languages:
 English (US)

Operating Systems:
Windows 2000

Advanced Server, Advanced Server SP1, Advanced Server SP2, Advanced Server SP3, Advanced Server SP4, Advanced Server Windows Powered, Advanced Server Windows Powered SP1, Advanced Server Windows Powered SP2, Advanced Server Windows Powered SP3, Advanced Server Windows Powered SP4, Datacenter Server, Datacenter Server SP1, Datacenter Server SP2, Datacenter Server SP3, Datacenter Server SP4, Professional, Professional SP1, Professional SP2, Professional SP3, Professional SP4, Server, Server SP1, Server SP2, Server SP3, Server SP4, Server Windows Powered, Server Windows Powered SP1, Server Windows Powered SP2, Server Windows Powered SP3, Server Windows Powered SP4

AIX

4.3.3.10, 5.1, 5.2

HP-UX

10.2, 10.20 / 11, 11.0

SCO

2.3, 2.4

Solaris

2.6, 7.0 (32-bit), 7.0 (64-bit), 8.0 (32-bit), 8.0 (64-bit), 9.0 (32-bit), 9.0 (64-bit)

Linux

RedHat 6.2, RedHat 6.x, RedHat 7.0, RedHat 7.1, RedHat 7.2, RedHat 7.3, RedHat 7.x, Redhat 8.0, SuSe 7.1, SuSe 7.2, SuSe 7.3, SuSe 8.0, SuSe 8.1, TurboLinux 7.0

Mac

10.0, 10.0.1, 10.0.4, 10.1, 10.1.2, 10.1.3, 10.2, 10.2.1, 10.2.2, 10.2.3, 10.2.4, 10.2.5, 10.2.6

Windows NT

4.0 Server SP4, 4.0 Server SP5, 4.0 Server SP6, 4.0 Server SP6a, 4.0 Workstation SP4, 4.0 Workstation SP5, 4.0 Workstation SP6a

Windows XP

Pro 5.1, Pro 5.1 SP1

Windows Server 2003

DataCenter, Enterprise Server, Standard Server, Web Server

UNIXWARE

7.0