Table Of Contents
Troubleshooting
OpenStream Issues
CDS Server Cannot Register with OpenStream
OpenStream Reports Alert Messages
General Information and Issues
File System
CDSM
Vault, Streamer, Caching Node, and ISV
Log Files
Linux Log Files
CServer Log Files
ISA Log Files
CDSM Log Files
Server Configuration Files
Description of the .arroyorc Settings
Description of the setupfile Settings
Identifying the Software Versions or Releases
Linux OS Version
CDS-Related Releases
Using ifstats to Monitor Traffic
Kernel Crash
Disk Drive Issues
CDSM GUI Disk Monitor Page Reports a Disk Warning
Memory Issues
Disabling USB Ports and Password-Protecting the BIOS
Network
No Output on the NSG
Vault Cannot Connect to FTP Server
Checking Network Configuration
Interface Information
Startup Issues
BIOS Settings—Operating System Hangs or Goes into KDB Mode
Serial Console Port Settings
Required Services Not Starting or Running Correctly
Management and Database Issues
System Health
Cannot Access the CDSM GUI
CDSM GUI Does Not Register the Vaults and Streamers
Database Monitoring
Ingest Issues
Ingest Interface
General Tips
Common Ingest Problems
CDS Is Not Registered to the Name Service
Restarting the ISA Services
Bad Content
Network
Content Processing Issues
Listing Content
Content Mirroring
Verifying GOIDs
Trick-Mode Issues
Name and Notify Services
CORBA Interface
Cache-Fill Issues
Tracking Cache-Fill Source
Rules for ISV Interoperability with Vaults and Streamers
Network
Stream Stops Playing at the Same Place or Does Not Play at All
Streaming and Playout Issues
Listing of Streams
No Streaming
Stream Not Playing
Tuning Failure
Restarting the ISA Services
Poor Video or Audio Quality
Session Messaging
Database Issues
Database Replication
CDSM GUI Does Not Report All the Ingested Content
Many Log Files
Corruption Recovery
Advanced Features and Applications
Live Multicast Ingest
Ingest with Media Scheduler
Ingest without Media Scheduler
Ingest Troubleshooting
Barker Stream
Frequently Asked Questions
Reliability and Availability
Serviceability and Manageability
Content
Other
CDS Content Quality Guidelines
Supported Elementary Stream Types
Scrambling
Transport Bit Rate
Stream Length
Format Restrictions
Preferred Formats
Troubleshooting
This appendix presents troubleshooting procedures for the CDS by showing the symptoms, probable causes, and recommended actions for a variety of issues. The topics covered in this appendix include:
•
OpenStream Issues
•
General Information and Issues
•
Startup Issues
•
Management and Database Issues
•
Ingest Issues
•
Content Processing Issues
•
Cache-Fill Issues
•
Streaming and Playout Issues
•
Session Messaging
•
Database Issues
•
Advanced Features and Applications
•
Frequently Asked Questions
•
CDS Content Quality Guidelines
There are a variety of possible combinations of CDS topologies, backoffice environments, middleware, and so on. The engineers using this troubleshooting appendix are expected to know their system well enough that they can extrapolate the relevant troubleshooting guidelines. With all connectivity issues, physical integrity of cables and ports should be verified, as well as VLAN configuration if applicable.
All Linux commands described in this appendix require console access to the server, or Secure Shell (SSH) access to the server.
Caution 
Do not attempt to access the Linux command line unless you are familiar with the CDS, the Linux operating system, and have an understanding of the Linux command line.
Note
It is important to verify at each step that the correct user account is being used. The root and isa user accounts are the only ones required to manipulate the files. The root user account uses the # symbol as a prompt. The isa user account uses the $ symbol as a prompt. We strongly recommend that you change these passwords as soon as possible by using the passwd command.
OpenStream Issues
Following are the common connectivity problems with the OpenStream system:
•
CDS Server Cannot Register with OpenStream
•
OpenStream Reports Alert Messages
CDS Server Cannot Register with OpenStream
This issue could manifest in the following ways:
•
In the ISA Content Store Log file, which is viewable by logging in to the Linux operating system on the server, you do not see the following log entry:
CorbaEventSupplier.cc|158|Event publishing.........Done.
•
In the OpenStream GUI, go to System Link > System Monitor > Alerts > CORBA Status. The status icon is red next to at least one of the following:
–
ContentStoreFactory
–
VideoContentStoreFactory
–
StreamServiceFactory
•
In the ISA Content Store Log file, you see a log entry that states it could not find the ISA naming server.
Cause 1: Configuration mismatch between CDS and OpenStream.
The IP address, port, and ISA names configured on the CDS do not match those configured on the OpenStream system.
Action 1: Verify the CDS configuration.
Verify the following settings on the Streamer BMS page and Vault BMS page:
•
The IP address and port of the Content Svc Master are correct and match the settings in the OpenStream system.
•
The ContentStore name and Factory ID match the settings in the OpenStream system.
•
The IP address and port of the CORBA Name Service and CORBA Notify Service match those of the OpenStream system.
Cause 2: The ISA services are not running.
Action 1: Check the ISA services.
Check that the ISA services are running on the CDS server by going to the Monitor > Server Level > Services Monitor page. If they are not running, restart the services by going to the Maintain > Services > Services Restart page and restarting the ISA-OpenStream service.
OpenStream Reports Alert Messages
OpenStream reports the following alerts:
•
Content creation/provisioning failed alert
•
Content creation/provisioning failed for ContentStore
•
Package partial export alert
•
Package provision failed alert
•
Provision failed alert
Cause 1: CDS is unable to register with OpenStream
Action 1: See the "CDS Server Cannot Register with OpenStream" section.
Cause 2: The Content Store does not have the correct FTP port setting.
Action 1: Verify FTP server and client settings.
Verify the FTP server and client port settings are correct by going to the Configure > Array Level > Vault BMS page.
Cause 3: The package information is incorrect.
Action 1: Verify the URL, hostname, file path, filename, username, and password.
General Information and Issues
This section describes the CDS file system, log files, configuration files, and general troubleshooting methods. This section includes the following:
•
File System
•
Log Files
•
Server Configuration Files
•
Identifying the Software Versions or Releases
•
Using ifstats to Monitor Traffic
•
Kernel Crash
•
Disk Drive Issues
•
Memory Issues
•
Disabling USB Ports and Password-Protecting the BIOS
•
Network
File System
The CDSM file system differs from the file system on the CDS servers (Vault, Streamer, Caching Node, ISV).
CDSM
The CDSM has the following directory structures:
•
/arroyo/asmrpt—Contains comma-separated values (CSV) files that are created by extracting information from the database every 24 hours. These files are accessible through the Reports > Archived Data page. The asm_archiver job must be installed and added to the crontab for these files to be generated. For more information, see the "Archived Data" section.
•
/arroyo/db—Contains the database binaries, this roughly maps to the /home/isa/Berkeley directory on Streamers and Vaults.
•
/arroyo/db/DATADIR—Contains the database files and indexes.
•
/arroyo/image—The staging area for CDS software image files. This directory also includes backup directories when a software upgrade is performed on the server.
•
/arroyo/msa—Contains the Managed Services Architecture (MSA) logs that are created by extracting information from the database. The logs are processed by the iVAST MSA agent.
•
/arroyo/www—Contains the HTTP files for the CDSM GUI. The subdirectory arroyo/www/htdocs, contains the PHP files for the CDSM GUI.
•
/arroyo/www/modules—The link library for htdocs files.
•
/home/isa/—Contains configuration files.
Report Archiving
The CSV files are generated every 24 hours and are deleted when they are older than 30 days. The CSV files are stored in the /arroyo/asmrpt directory. For the CSV files to be generated, the report archiver needs to be installed and configured. The CSV files are accessible by going to the /arroyo/asmrpt directory, or by using an FTP client with the username "asmrpt" and the password "asmrpt."
Vault, Streamer, Caching Node, and ISV
The CDS servers (Vault, Streamer, Caching Node, and ISV) have the following directory structures:
•
/arroyo/db
•
/arroyo/log
•
/arroyo/test/
•
/arroyo/archive
•
/home/isa
In addition to the above directories, the CDS servers have the following directories specific to the ISA environment:
•
/home/isa/Berkeley
•
/home/isa/ContentStore
•
/home/isa/IntegrationTest
•
/home/isa/Streaming
The log files are located in the /arroyo/log directory. A log file is automatically archived and moved to the /arroyo/archive directory when it reaches close to 100 MB in size.
Log Files
There are three types of log files in an ISA environment:
•
Linux Log Files
•
CServer Log Files
•
ISA Log Files
•
CDSM Log Files
The log files are rotated at least once a day and time stamps are added to the filenames. Some log files that grow rapidly are rotated more frequently (determined by file size); this rotation may happen up to once an hour. Most log files have the following suffix: .log.<YYYYMMDD.> The time zone for log rotation and filename suffixes is coordinated universal time (UTC).
The CServer log files are automatically archived and moved to the /arroyo/archive directory when the disk storage reaches a certain level. The ISA log files are automatically archived and moved to the /home/isa/bss/log/archive directory whenever the log file reaches close to 40 MB. A total of nine revisions are kept of each log file, with the eight oldest being compressed and moved to the archive directory.
To change the log level or set the debug flags for the log files, use the Configure > System Level > Logging and Configure > Server Level > Logging pages. For more information, see the "Configuring the System Level Logging" sectionand the "Configuring the Server Level Logging" section.
The following log tools are available:
•
loginfo—Provides information on each facility, associated log file, and debug flags. The loginfo tool can be run on any CDS server, including the CDSM. To view help on loginfo, enter the loginfo -h -v command.
•
logconfig—Provides log configuration on CDSM. To view help on logconfig, enter the logconfig -h -v command.
Linux Log Files
The Linux operating system has the following useful log files:
•
/var/log/debugmessages—Syslog messages
•
/var/log/messages—Includes useful bootup status messages
CServer Log Files
The CDS has the following useful log files:
•
/arroyo/log/c2k.log.<date>—This log has information about content read issues. The date extension for the log filename has the format of yyyymmdd (for example, 20090115 is January 15, 2009). To increase the verbosity of this log file, use the following command:
# echo "6" > /proc/calypso/tunables/c2k_verbosedump
•
/arroyo/log/protocoltiming.log.<date>—Provides information about any network interface issues and any disk issues.
•
/arroyo/log/avsdb.log.<date>—Provides information about any database issues.
•
/arroyo/log/avsdb-err.log.<date>
•
/arroyo/log/statsd.log.<date>—Provides system statistics information.
•
/arroyo/log/stresstest.log.<date>—Provides CPU uptime information.
•
/root/avslauncher.log.<date>—Provides information about the startup of the avslauncher module.
Other CServer log files that may be useful are the following:
•
/arroyo.log/controlblocktiming.log.<date>
•
/arroyo.log/debug.log.<date>
•
/arroyo.log/decommissioned.log.<date>
•
/arroyo.log/deleted.log.<date>
•
/arroyo.log/executiontiming.log.<date>
•
/arroyo.log/objectRepair.log.<date>
•
/arroyo.log/serverinfo.log.<date>
•
/arroyo.log/streamevent.log.<date>
•
/arroyo.log/systemstats.log.<date>
Note
The files with the extension <date> use the format yyyymmdd. The date is the Coordinated Universal Time (UTC) date.
CServer Error Codes
CServer error codes that appear in the c2k.log.<date> file do not necessarily mean an error has occurred. An actual error has "err" listed in the entry, as opposed to "out" or "ntc." Following is a list of important CServer error and status codes:
Error Codes
•
5—Completion of a task.
•
25—Insufficient resources.
Status Codes
•
0—Content is okay (cnOK).
•
1—Stream has ended (cnEnd).
•
2—Stream has been paused (cnPaused).
•
3—Error has occurred (cnError).
•
4—Next element is being processed (cnNextElement).
•
5—Live content has resumed (cnResumeLive).
•
6—Next content object is being processed (cnNextContent).
•
7—Next iteration is being processed (cnNextIteration).
•
9—There has been a failover (cnFailover) .
•
8—Stream has been destroyed (cnDestroyed).
Protocoltiming Warning Messages
Table A-1 describes some of the warning messages that might be seen in the Protocoltiming log.
Table A-1 Protocoltiming Warning Messages
Warning Message
|
Description
|
WARNING: Fill transmit bus hold offs
|
System bus is overloaded or network transmissions are not occurring fast enough and transmission of data is being delayed. The counts following these numbers may be low, this is not a concern because the delay is only 2 microseconds (ms). However, if the counts are high, this can cause stream data delivery problems.
|
WARNING: Fill Data Wait
|
Vault or Caching Node is unable to deliver data to a waiting Caching Node or Streamer because the data is not yet available. If the numbers are low, this is not a concern because the delay is only 2 ms. If the counts are high, this can cause stream data delivery problems.
|
WARNING Data Low
|
Data being streamed has less than 100 ms buffered ahead of the current stream point. Normally, there should be a 2-second elasticity buffer for data being transmitted, except for a short interval when the stream first starts and the data is still "bursting" to fill the elasticity buffer. There are no problems as a result of this warning, but it is a precursor to the Fill Data Wait warning.
|
WARNING: Disk Refetches
|
Warning does not indicate any problems with streaming content, just that the disk bandwidth was not being used as efficiently as possible.
|
WARNING: No capacity 5 percent
|
Server was not accepting any new requests, which were sent to it during five percent of the preceding ten-second sample period, because it was out of capacity. Other statistics in the protocoltiming log need to be examined to determine why the server determined it was out of capacity. If Caching Nodes or Streamers are unable to find an alternate server to provide the data they need, a stream failure may occur.
|
WARNING: Cannot stripe disk writes
|
Indicates one of the following two conditions:
• Some disk drives are completely full and data can no longer be written to them.
• The disk system is under a full-bandwidth load such that some drives are fully committed to reading stream data and are never getting any time to write data to the drive.
The data storage pattern is not efficient when this happens because the data can no longer be spread equally across all the drives. Check other load statistics to determine why the disk system cannot stripe to some drives is useful in determining why these warnings are occurring.
|
WARNING: Mirror Recovery degraded - some remote vaults (0:1) are inaccessible
|
The configured mirroring has not occurred because 1 or more required Vaults are down, or a partner Vault is up but configured to be in a different Vault Group.
|
ISA Log Files
The Linux user isa is the owner of the application files in an ISA environment. Logging in as isa starts the database. To change from the root login use the su - isa command.
The following log files provide information on content ingest and mirroring:
•
/arroyo/log/ContentStoreMaster.log
•
/arroyo/log/ContentStore.log
The following log files provide information on streaming:
•
/arroyo/log/StreamService.log
•
/arroyo/log/LSCPService.log
•
/arroyo/log/OrphanStreams.log
The following log file provides services monitoring and registration to the NameService:
•
/arroyo/log/ns_log
CDSM Log Files
The CDSM has the following logs:
•
httpd.log.<yyyymmdd>—Apache error log
•
httpd_access.log.<yyyymmdd>—Apache access log
•
cdsm.log.<yyyymmdd>—CDSM GUI log
•
cdsm-ws.log.<yyyymmdd>—Web Services log
All log files use UTC for the log entry time stamps and filenames. All four files are located in /arroyo/log directory.
The default log level for httpd.log is LOG_WARNING and the setting is preserved. The log level for httpd.log (facility is httpd) can be configured by using the /home/isa/logging/logconfig tool. The logconfig tool overwrites the LogLevel value in the httpd.conf file with the new value and the /arroyo/www/bin/apachectl restart command is issued.
The httpd_access.log (facility is httpd_access) is always on and the log level cannot be changed with the logconfig tool.
Following is an example of a log entry in the httpd_access.log file:
02-09-2011 15:44:09.937115 UTC vqe-dev-29 161.44.183.124 - - [02/Sep/2011:08:44:09 -0700]
"POST /includes/configGrpSubmitAjax.php HTTP/1.1" 200 12
Following is an example of a log entry in the httpd.log file:
2-09-2011 15:45:07 UTC vqe-dev-29 [notice] Apache/2.2.9 (Unix) PHP/5.2.6 configured --
resuming normal operations
Server Configuration Files
The server configuration settings are stored in the .arroyorc file and the setupfile file. This section describes the different parameters for each file.
Note
This section is informational only. All changes to the configuration files should be accomplished through the initial configuration and CDSM GUI.
Table A-2 lists the CDSM GUI ID names and maps them to the CServer names in the setupfile and .arroyorc files.
Table A-2 ID Names in the CDSM GUI and CServer Files
CDSM GUI ID Name
|
CServer Files ID Name
|
Array ID on the Array Name page
|
groupid
|
Group ID on the Server-Level pages
|
groupid
|
Stream Group ID on the Server Setup page
|
arrayid
|
Cache Group ID on the Server Setup page
|
arrayid
|
Vault Group ID on the Server Setup page
|
arrayid
|
Stream Group ID on the Configuration Generator page
|
arrayid
|
Description of the .arroyorc Settings
This section describes the different line entries of the .arroyorc file. The .arroyorc file is located in the /home/isa directory and is created during the initial configuration procedure outlined in the Cisco Content Delivery Engine 205/220/250/420 Hardware Installation Guide.
self
This number represents what type of server the CDE is:
•
0 = ISV (also known as SSV)
•
1 = Vault
•
2 = Streamer
•
3 = CDSM
groupid
All servers that are part of the same CDS system (managed by one CDSM) have the same group ID. This group ID should be unique across an enterprise. The purpose of the group ID is to allow servers in a group to recognize each other as belonging to the same group. If two server groups were on the same VLAN and they had the same group number, they would conflict and cause issues. This is much more likely to be an issue in a lab environment with shared resources than an actual production deployment, but this should still be managed.
serverid
Every server in the group has to have a unique ID ranging from 1 to 255. It is a good idea to use a standardized numbering solution; for example, all 1xx serverids are Streamers and all 2xx server IDs are Vaults.
vault
This parameter has the IP address of a Vault in the system. Each "vault" line represents an individual Vault. There may be multiple vault lines.
streamer
This is the IP address of a Streamer in the system. Each "streamer" line represents an individual Streamer. There may be multiple streamer lines.
controller
This is the IP address of the CDSM. There is only one controller line. This line is not needed in the file for the CDSM, but is used on Vaults and Streamers to point to the CDSM.
mirroring
This controls local mirroring, which is to say this determines the number of copies of a given piece of content that is stored locally.
partno
This allows the server to identify itself properly to the CDSM. The CDSM can then display the appropriate server graphic in the GUI and manage the appropriate number of disks, Ethernet ports, and so on.
mgmtif
The index of the management interface starting at eth0. Typically, this remains 0.
ingestif
This parameter is only for Vaults. The index of the ingest interface starting at eth0. Typically this remains 0 but may have the value of 1 as well.
dbdomsock
This is the "file handle" where the applications address messages are intended for the database.
dbnetport
This is the port number where the applications address messages are intended for the database.
controlif
The index of the stream control interface starting at eth0. This is an optional configuration that is used when you want to separate the Setup and Control interface.
Description of the setupfile Settings
This section describes the different parameters of the setupfile file. The setupfile file is located in the /arroyo/test directory. Some values for the parameters in the setupfile file are set during the initial configuration (serverid, groupid, streamer vault), others are set by using the CDSM.
Note
The localip # line entry has been deprecated. Ignore this line entry.
Required Settings
The following line entries are required in every setupfile file:
serverid #
An identifier that uniquely identifies the server within a group of servers identified by the group ID. See the "serverid" section for more information.
groupid #
An identifier that identifies the group of servers within the CDS. See the "groupid" section for more information.
streamer <0 or 1> vault <0 or 1>
To run the server as a Streamer, set streamer to 1; otherwise, set streamer to 0. To run the server as a Vault, set vault to 1; otherwise, set vault to 0. Setting both streamer and vault to 0 is not a valid option.
service address <ip in dot notation> setup <setup portno> control <control portno>
The service address is used to specify whether this server can assume the role of the Setup server, the Control server, or both the Setup and Control servers for the specified IP address. This parameter applies only to Streamers.
•
setup portno—A value of 0 means the server is not available to assume the role of the Setup server for the specified IP address. A value of 1 means to use the default port number 3300.
•
control portno—A value of 0 means the server is not available to assume the role of the Control server for the specified IP address. A value of 1 means to use the default port number 9000.
e1000 <index>: streaming <0 or 1> fill <0 or 1> ip <ip in dot notation> tport <transport portno> cport <cache portno> tgid <transport groupid>
The e1000 is used to configure the network interfaces for cache-fill and transport/streaming. Each "e1000" line represents an individual Ethernet port. Include one line per interface.
•
index—Refers to the interface index as known to the e1000 driver. In the case of servers with the Lindenhurst chipset, this matches one for one with the number for the eth# interface.
•
streaming—For transport/streaming. A value of 1 means this interface is used for streaming; otherwise, set streaming to 0.
•
fill—For cache fill. A value of 1 means this interface is used for cache fill. Otherwise, set fill to 0.
•
ip—Each interface requires a source IP address. This assumes Layer 3 networks only.
•
tport—The transport port number used as the source in transporting (streaming) packets. A value of 0 means to use the default port number 1026 (unless affected by the optional default source IP entry).
•
cport—The cache port number used as the source in caching (fill) packets. A value of 0 means to use the default port number 48879 (unless affected by the optional default source IP entry).
•
tgid—The transport group ID for this interface. The transport group ID is used in conjunction with the TransportGroupIdTable file located in the /arroyo/test directory to determine which interface to use to transport the packet. This is based on the IP address or subnet of the destination of the packet. The default value is 0, which means this interface is available to any transport group. Any other value means the interface is dedicated to a particular transport group.
vault mirror copies <number of copies>
The Vault mirror copies is a numeric value representing the number of copies of each content to store on the Vaults.
Note
The transport group ID (tgid) has been deprecated. Use the SubnetTable instead. See the "Network" section.
Optional Settings
The following line entries are optional in the setupfile file:
management eth #
Specifies the interface used for management. The default is eth0.
ingest eth #
Specifies the interface used for live ingests (FTP push or UDP capture). By default, the management interface is used. This parameter is applicable only to Vaults.
e1000 adapters: maxrate <rate in Mbps>
Controls the maximum transmit bandwidth on this interface, either for streaming, for caching, or for both. The default is 975 Mbps.
ibg adapters
The maximum transmit bandwidth of the ibg adapters. The default is 975 Mbps.
disks #
Specifies the number of hard drives (disks) installed on a server. The default is 12 disks for a Streamer, and 24 disks for a Vault. If you have a server with 12 disks, you must add this entry and specify 12 disks; otherwise, warning messages stating disks are non-operational are logged to the protocoltiming log file.
test #
Specifies the test mode of the server. The default is 4, which means to run the server in production mode.
cache_dscp #
Used to set the DSCP bits on cache-fill packets. The default value is 0.
cache_ecn #
Used to set the ECN bits on cache-fill packets. The default value is 0. This parameter should not be used.
transport_dscp #
Used to set the DSCP bits on transport/streaming packets. The default value is 0.
transport_ecn #
Used to set the ECN bits on transport/streaming packets. The default value is 0. This parameter should not be used.
trickspeedsv2 # # # # # # # #
Used to specify up to 8 speeds for generating trick objects during ingest. This parameter is applicable only to Vaults. The defaults are 5, -5, 10, -10, 32, and -32. The highest speeds are -127 and 127. An entry larger than 127 defaults to 127. A value of 0 is ignored.
ftpout if eth # max utilization mbps # max sessions #
Used to specify which interface on the Vault is used for FTP Out, the maximum bandwidth utilization for all active sessions (in Mbps), and the maximum number of simultaneous sessions allowed. By default, the maximum sessions is 0, meaning that FTP Out is not allowed. The default for bandwidth utilization is 0, which means unlimited usage. The default interface chosen is the management interface. For FTP Out to function properly, the entire content must exist on the Vault.
arrayid #
Specifies the array this server belongs to. The array ID is used in conjunction with the StreamDestinationMap file located in the /arroyo/test directory to determine which play servers are available for selection. This selection is based on the IP address or subnet of the destination of the packet. The default value is 0.
remote site manager <ip address> for arrayid #
Specifies the IP address of a remote site manager for a specified array. The remote site manager has a list of all the servers that it can connect to that are located at the same site (the servers are listed in the RemoteServers list) on the remote site manager). When this server comes up, it contacts the remote site manager and asks for a referral for a server that is in the specified array. The remote site manager returns the IP address of a server from that array. This server sets up connections with all the referred remote servers, and once every minute, checks to see if there are connections with all remote array servers. If for some reason one is not available, this server contacts the remote site manager for another referral.
Note
You must add the allow new L3 remote servers 1 directive to the setupfile for both this server and the server that gets referred. If you do not add this directive, this server cannot establish a connection with the referred remote server.
default source ip <ip in dot notation> tport <minportno> - <maxportno> cport <portno>
Used to affect source packets if no specific information is provided in the individual mandatory e1000 interface entries.
•
ip—The default source IP address for an interface. This value is overridden by the mandatory e1000 interface entry. This IP address is not meaningful in a Layer 3 network. However, today it must have a non-zero value for the other values to be looked at.
•
tport—After a stream is started, a random port within the range specified is used as the source port for transport/streaming packets of the stream (assuming no specific port was selected for tport in the mandatory e1000 interface entries).
•
cport—The source port to use for cache-fill packets (assuming no specific port was selected for cport in the mandatory e1000 interface entries).
Note
The default source IP is useful in a Layer 2 network. For Layer 3 networks, an IP address is required for each interface, so the value in the default source IP is superseded by the individual entries for the interfaces. However, the default source IP setting specifies other defaults (transport port and cache port). If you would like to specify a range of transport ports, then the default source IP could have a value of zero.
Note
The default source IP can be used in conjunction with the mandatory e1000 interface entries. For example, the default source IP can be used to specify a range for the source transport port. However, the generation of a random port does not currently work on every stream start. Therefore, it is best not to use this option.
bms address <ip> <port>
The IP address and port of the backoffice.
Identifying the Software Versions or Releases
The following sections describe the commands for identifying the software versions on the server.
Linux OS Version
To identify the software version of the Linux operating system (OS) on the CDSM, enter the following command:
# cat /proc/version or "uname -a"
Linux version 2.6.18-92.el5 (brewbuilder@ls20-bc2-13.build.redhat.com) (gcc version
4.1.2 20071124 (Red Hat 4.1.2-41)) #1 SMP Tue Apr 29 13:16:15 EDT 2008
To identify the software version of the Linux OS on the Vault, Streamer, or ISV, enter the following commands:
Linux version 2.6.18-53.el5.kernel.2_6_18.2008.10.07.01 (arroyoqa@build-svr) (gcc
version 4.1.2 20070626 (Red Hat 4.1.2-14)) #1 SMP Mon Nov 17 18:21:51 PST 2008
Linux stm74 2.6.18-53.el5.kernel.2_6_18.2008.10.07.01 #1 SMP Mon Nov 17 18:21:51 PST
2008 i686 i686 i386 GNU/Linux
CDS-Related Releases
The CDS software for ISA is a combination of the ISA overlay, statsd software, and the CServer code. The following sections describe how to identify the software version of each.
ISA Environment
To identify the software version of the CDS ISA overlay image, enter the following command:
# cat /home/isa/IntegrationTest/.build_tag
** ISA Tag: r_2_0v1-isa-e008-2008-10-28-01
Build Time: Mon Nov 17 19:00:38 PST 2008
statsd Program
To identify the software version of the statsd program, enter the following command:
# strings /home/stats/statsd |grep Rel
STATSD Release TOP_OF_TREE (arroyoqa@build-svr) (gcc version 4.1.2 20070626 (Red Hat
4.1.2-14)) #1-Nstatsd-2008-11-07-02 Mon Nov 17 18:34:15 PST 2008
CSserver Code
To identify the software version of the CServer on the Streamer, Vault, or ISV, enter the following command:
# strings avs_cserver.ko |grep CServer
Average setup time spent in CServer =
AVS CServer Release #1-Ncserver-e013-2008-11-17-05 Mon Nov 17 18:54:01 PST 2008
ENV_ISA_SR DEBUG
AVS CServer Information ENV_ISA_SR DEBUG (arroyoqa@build-svr) (gcc version 4.1.2
20070626 (Red Hat 4.1.2-14)) #1-Ncserver-e013-2008-11-17-05 Mon Nov 17 18:54:01 PST
2008
To view the CServer settings, status, and version, enter the following command:
# cat /proc/calypso/status/server_settings
AVS CServer Information ENV_ISA_SR PROD (arroyoqa@build-svr) (gcc version 4.1.2
20070626 (Red Hat 4.1.2-14))
#1-Ncserver-e013-2009-01-20-03 Tue Jan 20 17:54:28 PST 2009
TSCs Per Second is 2333447000
Running in L3 Network Mode
Transport/Stream Data Payload: 1316
Cache/Fill Data Payload: 7680
Cache/Fill Control Maximum Packet Size: 8048
Using ifstats to Monitor Traffic
The ifstats command shows real-time traffic on each Ethernet interface on the server.
============================================================
Int# R-Mbps X-Mbps R-Bytes X-Bytes
eth0 0 0 56760511 166307653
eth2 4 457 3439241508 3497139080
eth3 4 457 3439172148 3099124288
eth4 4 457 3441836680 2945489644
eth5 4 472 3443060380 2736115618
eth6 4 471 3438423816 2613199736
eth7 5 464 3440066492 2419935662
eth8 4 449 3439982812 2266582156
eth9 4 465 3443251384 2164010982
eth10 5 465 3439982136 1915437726
eth11 4 464 3438935192 397577442
eth12 5 464 3440343164 300903930
eth13 4 465 3439540716 4454799830
Kernel Crash
The kernel debugger (KDB) provides information (in the form of a core dump file) when the server processing fails. For the server to enter KDB when the server has crashed, the /proc/sys/kernel/panic parameter must be zero. If the panic parameter is non-zero, the system reboots automatically without entering KDB.
In addition to KDB, there is a kdump service. The kdump service allows you to take a kernel dump of memory. The kdump service runs automatically if the server is configured to reboot automatically after a crash (which means the panic parameter is non-zero). The kdump service stores the kernel memory dump in the /var/arroyo/crash directory. After the kernel memory is dumped, the system reboots into the normal operating system.
If the server is configured to enter KDB (which means the panic parameter is zero), the server enters KDB mode. The kdump command allows you to take a kernel memory dump while the server is in KDB mode. The kdump command reboots the server into kdump mode, takes a kernel memory dump, and reboots the server into the normal operating system.
If a server has crashed after being started automatically from the /etc/rc.local directory, you need to boot in single-user mode. To boot in single-user mode, perform the following steps:
Step 1
Reboot the server.
Step 2
When a blue screen displays a list of Linux versions, press the E key to edit the kernel entry.
Step 3
Multiple lines are displayed. Use the Up Arrow and Down Arrow keys to highlight the second line. You may need to press the E key again to edit the line. A square cursor appears at the end of the line.
Step 4
Remove the 115200 from the console parameter (for example, console=ttySO,115200n8).
Step 5
Add the word "Single" or the letter "S" to the end of the line.
Step 6
Press Enter.
Step 7
Press the B key to boot the Linux kernel into single-user mode.
Step 8
Wait for the server to finish booting up.
Step 9
Edit the /etc/rc.local file and comment out the line /arroyo/test/vault/run.
Step 10
Reboot the server.
To view the contents of the core dump file from the Linux prompt, do the following:
Step 1
Run the GNU debugger (gdb), and specify the core file and binary file.
gdb --core=<core-file> <binary-file>
The core-file parameter is the core filename and the binary-file is the binary file that produced the core file.
Step 2
After the GNU debugger has started, enter the backtrace command, bt, at the gdb prompt and press Enter.
The callback stack is displayed, which shows the history of the current function calls that were made at the time of the crash.
Disk Drive Issues
The disk drive order is irrelevant when reinserting disk drives after transporting a chassis, or transferring disk drives from one chassis to another.
To view the statistics of the internal boot drive, the disk drive that contains the software, enter the df -k command.
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 10317828 3764936 6028776 39% /
/dev/hda2 20641788 1711372 17881776 9% /arroyo
/dev/hda3 8254272 32828 7802148 1% /arroyo/db
/dev/hda6 35641880 1185880 32645480 4% /arroyo/log
none 1681200 0 1681200 0% /dev/shm
To view the statistics of a removable SATA or SCSI disk drive, use the following commands:
# cat /proc/calypso/status/streamer/diskinfo
Storage: T(804G) A(21%) U(0)
BW: (99%) w(1.35M/s) r(0/s)
I/O Util: w(1:0%) e(0) a(0%)
Disk[ 1][67.0G] A[20%] B[11x]
Disk[ 2][67.0G] A[20%] B[0x]
Disk[ 3][67.0G] A[21%] B[0x]
Disk[ 4][66.5G] A[22%] B[0x]
Disk[ 5][67.0G] A[20%] B[0x]
Disk[ 6][67.0G] A[21%] B[0x]
Disk[ 7][67.0G] A[20%] B[0x]
Disk[ 8][67.0G] A[20%] B[0x]
Disk[ 9][67.0G] A[21%] B[0x]
Disk[10][67.0G] A[20%] B[0x]
Disk[11][67.0G] A[20%] B[0x]
Disk[12][67.0G] A[20%] B[0x]
CDSM GUI Disk Monitor Page Reports a Disk Warning
If the CDSM GUI Disk Monitor page reports a disk warning, check the disk drive status in the /arroyo/log/protocoltiming.log.<date> log file and the /var/log/debugmessages log file.
# grep drives /arroyo/log/protocoltiming.log.11132007
WARNING: 5 disk drives are non-operational
WARNING: 5 disk drives are non-operational
WARNING: 5 disk drives are non-operational
WARNING: 5 disk drives are non-operational
# grep disks /var/log/debugmessages
Nov 20 19:02:44 vault219 kernel: RAMDISK driver initialized: 16 RAM disks of 16384K
size 4096 blocksize
Nov 20 19:03:34 vault219 kernel: Waiting for 2 disks to finish initializing
Nov 20 19:03:34 vault219 kernel: Waiting for 4 disks to finish initializing
Nov 20 19:03:35 vault219 kernel: Waiting for 3 disks to finish initializing
Nov 20 19:03:36 vault219 kernel: Waiting for 2 disks to finish initializing
Nov 20 19:03:36 vault219 kernel: Waiting for 1 disks to finish initializing
Nov 20 19:03:36 vault219 kernel: Waiting for 5 disks to finish initializing
Nov 20 19:03:42 vault219 kernel: Waiting for 6 disks to finish initializing
Nov 20 19:03:42 vault219 kernel: Waiting for 5 disks to finish initializing
Nov 20 19:03:43 vault219 kernel: Waiting for 4 disks to finish initializing
Nov 20 19:03:45 vault219 kernel: Waiting for 11 disks to finish initializing
Nov 20 19:03:46 vault219 kernel: Waiting for 10 disks to finish initializing
Nov 20 19:03:46 vault219 kernel: Waiting for 9 disks to finish initializing
Nov 20 19:03:46 vault219 kernel: Waiting for 8 disks to finish initializing
Nov 20 19:03:47 vault219 kernel: Waiting for 7 disks to finish initializing
Nov 20 19:03:47 vault219 kernel: Waiting for 6 disks to finish initializing
Nov 20 19:03:48 vault219 kernel: Waiting for 5 disks to finish initializing
Nov 20 19:03:48 vault219 kernel: Waiting for 4 disks to finish initializing
Nov 20 19:03:48 vault219 kernel: Waiting for 3 disks to finish initializing
Nov 20 19:03:48 vault219 kernel: Waiting for 2 disks to finish initializing
Nov 20 19:03:48 vault219 kernel: Waiting for 1 disks to finish initializing
Nov 20 19:03:50 vault219 kernel: Total disk space = 24.0TB on 24 disk drives (Lost
disks = 0)
Note
Sometimes on the CDE400, the bus and host resets are used to reset the SATA driver because the Linux SATA driver, sats_mv.ko, does not provide a device reset vector. If the device is reset when there are no outstanding requests, warning messages are displayed on the console. These warning messages are informational and do not indicate a failure.
Memory Issues
To slow down the CDSM bootup to see the memory counter, do the following:
Step 1
Reboot the server.
Step 2
To enter the BIOS Setup Utility, press the Delete key on your keyboard when you see the following text prompt:
Note
In most cases, the Delete key is used to invoke the setup screen. There are a few cases where other keys are used, such as F1, F2, and so on.
Step 3
Use the Right Arrow key to navigate to the Boot menu.
Step 4
Choose the Boot Settings configuration option (Figure A-1).
Step 5
Choose Quick Boot and set it to Disabled.
Figure A-1 BIOS Setup Utility—Boot Settings
Step 6
Press F10 to save and exit the BIOS Setup Utility.
Disabling USB Ports and Password-Protecting the BIOS
Disabling USB Ports and Password-Protecting the BIOS
The following procedure provides instructions on disabling the USB ports and password-protecting the BIOS. Disabling the USB ports and password-protecting the BIOS provides a way to secure the server from anyone outside the allowed administrative group from accessing the server through the USB port.
If the USB port is required to perform an operation (for example, a software upgrade), the operator can log in to the BIOS using the BIOS password and enable the USB port for the operation. After the operation is complete, the operator logs back in to the BIOS and disables the USB port.
To set the BIOS password and disable the USB ports, do the following:
Step 1
Reboot the server.
Step 2
To enter the BIOS Setup Utility on a CDS server (Vault, Caching Node, Streamer, or ISV), press the Delete key when you see the following text:
To enter the BIOS Setup Utility on a CDSM or VVIM, press F2.
The BIOS menu is displayed with the Main tab selected.
Use the Right Arrow and Left Arrow keys to select a menu tab, and the Up Arrow and Down Arrow keys to select a menu item.
Step 3
To set the Administrator password, do the following:
a.
Use the Right Arrow key to navigate to the Security menu. The Security options are displayed. The Administrator has read/write permission. The User has read-only permission.
b.
Use the Down Arrow key to navigate to the Administrator Password option and press Enter. The Create New Password dialog box is displayed.
c.
Enter the password.
To set a user password, use the Down Arrow key to highlight the User Password, press Enter, and enter the password in the Create New Password dialog box.
Step 4
To disable the USB ports, do the following:
a.
Use the Left Arrow key to navigate to the Advanced menu. The Advanced options are displayed.
b.
Use the Down Arrow key to navigate to the USB Configuration option and press Enter. The USB Configuration options are displayed.
c.
Use the Down Arrow key to navigate to the USB Controller and press Enter. The USB Controller dialog box is displayed.
d.
Use the Up Arrow and Down Arrow keys to highlight Disabled and press Enter. The USB Configuration options show Disabled for all USB options.
Step 5
To save your settings, press F10. The Save & Reset confirmation dialog box is displayed.
Use the Right Arrow and Left Arrow keys to highlight Yes and press Enter.
After rebooting the server, to enter the BIOS Setup Utility, you are prompted to enter the BIOS password. To have read/write permission, enter the Administrator password. To have read-only permission, enter the User password.
To enable the USB ports, reboot the server, do the following:
Step 1
Reboot the server.
Step 2
Enter the BIOS Setup Utility on a CDS server (Vault, Caching Node, Streamer, or ISV) by pressing the Delete key when you see the following text:
To enter the BIOS Setup Utility on a CDSM or VVIM, press F2.
The BIOS menu is displayed with the Main tab selected.
Step 3
Use the Left Arrow key to navigate to the Advanced menu. The Advanced options are displayed.
Step 4
Use the Down Arrow key to navigate to the USB Configuration option and press Enter. The USB Configuration options are displayed.
Step 5
Use the Down Arrow key to navigate to the USB Controller and press Enter. The USB Controller dialog box is displayed.
Step 6
Use the Up Arrow and Down Arrow keys to highlight Enabled and press Enter. The USB Configuration options show Enabled for all USB options.
Step 7
To save your settings, press F10. The Save & Reset confirmation dialog box is displayed.
Use the Right Arrow and Left Arrow keys to highlight Yes and press Enter.
Network
Following are the some common network problems:
•
No Output on the NSG
•
Vault Cannot Connect to FTP Server
•
Checking Network Configuration
No Output on the NSG
There is no output on the NSG when sending a play command.
Cause 1: Cannot communicate with the QAM device or the QAM settings are incorrect.
Action 1: Verify the QAM configuration on the CDS.
Verify the IP address, and MAC address if applicable, of the QAM by going to the Configure > System Level > QAM Gateway page.
Vault Cannot Connect to FTP Server
In the ISA Content Store Log file, which is viewable by logging in to the Linux OS on the server, a log entry states it cannot connect to the FTP server.
Cause 1: Hostname is not resolving correctly.
Action 1: Verify the CDS configuration for DNS.
•
Verify the host table lookup by going to the Configure > System Level > Host Service page. The host table is used for DNS lookup before the DNS servers are queried.
•
Verify the DNS server settings by going to the Configure > System Level > DNS page.
•
Verify the DNS servers are reachable.
Checking Network Configuration
The following commands are useful for checking your network configuration and activity.
To view the ARP table, enter the following command:
jetsam.v.com (111.0.110.151) at 00:00:0C:07:AC:00 [ether] on eth0
cds17-m1.v.com (111.0.210.170) at 00:30:48:58:5B:A1 [ether] on eth0
cds17-v1.v.com (111.0.210.171) at 00:30:48:31:53:B2 [ether] on eth0
? (111.0.210.175) at 00:30:48:32:0A:5A [ether] on eth0
cds17-s1.v.com (111.0.210.172) at 00:04:23:D8:89:44 [ether] on eth0
cds17-s1.v.com (111.0.210.172) at 00:04:23:D8:89:44 [ether] on eth0
To view the IP routing table, enter the following command:
Destination Gateway Genmask Flags MSS Window irtt Iface
111.0.210.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
111.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 111.0.210.1 0.0.0.0 UG 0 0 0 eth0
To view the CDS subnet table, enter the following command:
# cat /arroyo/test/SubnetTable
network 111.1.13.1 netmask 255.255.255.240 gateway 111.1.13.1 transport_source_ip 0
Note
The local networks and their gateways are specified in the SubnetTable file. For backward compatibility, the local subnet and gateway in the RoutingTable are still supported and are used if the SubnetTable file does not exist. The Routing Table can still be used to specify static routes.
To view the CDS routing table, enter the following command:
# cat /arroyo/test/RoutingTable
default gateway 111.1.13.1
network 111.1.13.1 netmask 255.255.255.240 gateway 0.0.0.0
To view the CDS remote server table, enter the following command:
# cat /arroyo/test/RemoteServers
Interface Information
To view basic interface information, use the ifconfig command.
eth0 Link encap:Ethernet HWaddr 00:04:23:D8:9A:80
inet addr:111.0.110.41 Bcast:111.0.110.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13946269 errors:0 dropped:0 overruns:0 frame:0
TX packets:11594110 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3085199261 (2942.2 Mb) TX bytes:1317620721 (1256.5 Mb)
Interrupt:24 Base address:0x3000 Memory:dd240000-0
For detailed interface information, view the interface information file in the /proc/net/ directory.
# cat /proc/net/PRO_LAN_Adapters/eth0.info
Description Intel® Gigabit Ethernet Network Connections
Driver_Version 1.2.22-CDS
PCI_Subsystem_Vendor 0x15d9
Current_HWaddr 00:30:48:C3:26:9E
Permanent_HWaddr 00:30:48:C3:26:9E
Rx_CSum_Offload_Good 406625
PHY_Cable_Length Unknown Meters (+/- 20 Meters)
PHY_Extended_10Base_T_Distance Unknown
PHY_Cable_Polarity Normal
PHY_Disable_Polarity_Correction Enabled
PHY_Local_Receiver_Status OK
PHY_Remote_Receiver_Status OK
Startup Issues
This section includes the following topics:
•
BIOS Settings—Operating System Hangs or Goes into KDB Mode
•
Serial Console Port Settings
•
Required Services Not Starting or Running Correctly
BIOS Settings—Operating System Hangs or Goes into KDB Mode
When a single bit error occurs in the memory of a server, it causes the Linux OS to lock up, which puts the server into kernel debugger (KDB) mode. This is because of the BIOS Error Correcting Code (ECC) Type being set incorrectly.
To correct the ECC Error Type setting in the BIOS Setup Utility, do the following.
Step 1
During the server bootup, press the Delete key to enter the BIOS Setup Utility.
Step 2
Navigate to the Advanced menu and choose Advanced Chipset Control.
Step 3
Choose ECC Error Type and change the setting to NMI (Figure A-2).
Figure A-2 BIOS Setup Utility—Advanced Chipset Control
Step 4
Press F10 to save and exit.
Serial Console Port Settings
The CDE servers ship with the following serial console settings: 115200 baud rate, no parity, 8 data bits, and 1 stop bit (115200-N-8-1). To verify the serial console settings, check the following:
•
BIOS Settings—Determines the speed during the very beginning of the boot process up to and including the GRUB menu. In the BIOS Setup Utility, check that the Console Redirection in the Advanced menu is set to VT100.
•
/etc/boot/menu.lst—Determines the speed after the kernel is loaded.
•
/etc/inittab—Determines the speed after the OS is loaded. Enter the following:
$ cat /etc/inittab | grep S0
S0:2345:respawn:/sbin/agetty ttyS0 115200 vt100
Note
The CDE100 may have the following serial console settings: 9600 baud rate, no parity, 8 data bits, and 1 stop bit (9600-N-8-1).
Required Services Not Starting or Running Correctly
From the CDSM GUI, view the Services page for each server by clicking Monitor > Server Level > Services. For more information, see the "Services Monitor" section. If the required services are not started, or they are not running correctly, check that there is two-way database connectivity between the Streamers and Vaults, and the CDSM.
tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN
tcp 0 0 172.22.97.193:9999 172.22.97.197:56998 ESTABLISHED
tcp 0 0 172.22.97.193:34743 172.22.97.197:9999 ESTABLISHED
tcp 0 0 172.22.97.193:9999 172.22.97.192:50343 ESTABLISHED
tcp 0 0 172.22.97.193:39158 172.22.97.196:9999 ESTABLISHED
tcp 0 0 172.22.97.193:46030 172.22.97.192:9999 ESTABLISHED
tcp 0 0 172.22.97.193:9999 172.22.97.196:55780 ESTABLISHED
tcp 0 0 172.22.97.193:9999 172.22.97.191:50950 ESTABLISHED
tcp 0 0 172.22.97.193:60598 172.22.97.191:9999 ESTABLISHED
tcp 0 0 172.22.97.193:9999 172.22.97.194:37543 ESTABLISHED
tcp 0 0 172.22.97.193:56376 172.22.97.194:9999 ESTABLISHED
Two connections for each Vault and Streamer should be listed with a status of "ESTABLISHED."
If the connection states do not say "ESTABLISHED," check the configuration of /home/isa/.arroyorc file to make sure the settings are correct, then restart the database.
Log in to the server as isa and start the database.
Log into the server as root and start the statsd.
Check that the LSCP listener is running on the correct port.
Management and Database Issues
This section includes the following topics:
•
System Health
•
Cannot Access the CDSM GUI
•
CDSM GUI Does Not Register the Vaults and Streamers
•
Database Monitoring
System Health
The colored boxes on the System Health Monitor page have the following meaning:
•
Green—All components are operating; occasionally click each check box to verify.
•
Yellow—Some components are not operational.
•
Red—All components have failed.
Cannot Access the CDSM GUI
If you cannot access the CDSM GUI, log in as root and verify that the Apache server is running on the CDSM.
root 4023 1 0 Aug09 ? 00:01:44 /arroyo/www/bin/httpd
nobody 4033 4023 0 Aug09 ? 00:00:53 /arroyo/www/bin/httpd
nobody 4034 4023 0 Aug09 ? 00:00:53 /arroyo/www/bin/httpd
nobody 4035 4023 0 Aug09 ? 00:00:53 /arroyo/www/bin/httpd
nobody 4036 4023 0 Aug09 ? 00:00:53 /arroyo/www/bin/httpd
nobody 4037 4023 0 Aug09 ? 00:00:53 /arroyo/www/bin/httpd
nobody 4085 4023 0 Aug09 ? 00:00:52 /arroyo/www/bin/httpd
nobody 4086 4023 0 Aug09 ? 00:00:53 /arroyo/www/bin/httpd
nobody 4572 4023 0 Aug10 ? 00:00:52 /arroyo/www/bin/httpd
root 11598 30692 0 16:12 pts/0 00:00:00 grep http
If the Apache server is not running, restart the server.
# /arroyo/www/bin/apachectl start
CDSM GUI Does Not Register the Vaults and Streamers
If the CDSM GUI is not able to register that the Vaults and Streamers are part of the array or CDS, do the following:
Step 1
Log in to the Vault or Streamer as root.
Step 2
Verify two-way database connectivity with the CDSM.
# netstat -an | grep 9999
Step 3
Verify that statsd is running.
Step 4
Verify the correct version and permissions for /home/stats/svrinit or svrinit_15 are being used.
Step 5
On the Vault and the Streamer, initialize the CDS host in the database by using svrinit_15. Use the following options:
•
Option -i for the physical IP address (eth0) of the server
•
Option -s for the subnet mask of the network
•
Option -h for the hostname
•
Option -d to deregister
For example, first deregister the CDS host using the -d option, then initialize the CDS host.
# svrinit_15 -i <ip_address> -s <subnet_mask> -h <host_name> -d
# svrinit_15 -i <ip_address> -s <subnet_mask> -h <host_name>
Step 6
If you still have trouble getting the tables initialized, then log in to the CDSM GUI with an engineering access user account and add the Streamer or Vault by clicking the Maintain > Software > System Configs page and using the Add New Server option.
Database Monitoring
To monitor a stuck database thread problem, use the following command:
Two connections for each Vault and Streamer should be listed with a status of "ESTABLISHED." If two-way connection does not exist, run db_shutdown on all servers including the CDSM, then start the database using the following commands:
If the database is stuck and db_shutdown does not take effect, use ps -ef | grep avsdb to query the process ID (PID), then use the kill -9 {pid} command to kill the avsdb process, and lastly restart the database.
Ingest Issues
This section includes the following ingest issues:
•
Ingest Interface
•
Bad Content
•
Network
Ingest Interface
This section includes the following topics on troubleshooting the ingest interface:
•
General Tips
•
Common Ingest Problems
•
CDS Is Not Registered to the Name Service
•
Restarting the ISA Services
General Tips
Following are some general troubleshooting tips for ingest issues:
•
Use the ifstats command to monitor ingests.
•
Ping the FTP device, which is either a catcher or an FTP server.
•
Manually FTP to the catcher or FTP server.
Common Ingest Problems
Following are some possible causes of ingest issues:
•
FTP server is not reachable (server is down, routes are incorrect, network partition).
•
Incorrect URL for the content file.
•
ContentStore file system is full.
–
Check the /arroyo/log/protocoltiming.log.<date> log file.
–
Verify that the correct trickmode speeds are set.
CDS Is Not Registered to the Name Service
If the CDS is not registering with the CORBA name service, check the information from the following commands:
$ tail -f /arroyo/log/ns_log
$ /home/isa/IntegrationTest/show_calypso_services
$ /home/isa/IntegrationTest/list_all_content
$ /home/isa/IntegrationTest/list_all_streams
Restarting the ISA Services
If it is necessary to restart the ISA services, then enter the following commands:
$ /home/isa/IntegrationTest/stop_all
$ tail -f /arroyo/log/ns_log
$ /home/isa/IntegrationTest/run_isa
Bad Content
Variable bit rate (VBR) encoded content is not currently supported. See the "CDS Content Quality Guidelines" section for constant bit rate (CBR) guidelines.
Network
Ensure that the network maximum transmission unit (MTU) is appropriately set. If jumbo frames are enabled on the CDS, then the network must support jumbo frames. We recommend that the network support jumbo frames even when the jumbo frame option is disabled.
If a Layer 2 network is used for CDS, then appropriate MAC addresses (ARP entries) have to be configured on the switches and routers. Ensure that the CDS Vault and Streamer interfaces are in the same VLAN. If a Layer 3 network is used for the CDS, then ensure that the corresponding default gateways are correctly configured on CDS Vaults and Streamers for the various interfaces and Stream Groups.
Ensure that the content source (catcher, FTP server, and so on) is reachable from the Vaults or ISVs, and that manual content transfer using FTP works correctly.
For more information about the status of the network interfaces, network routing tables, ARP and so on, see the "Network" section.
Content Processing Issues
This section includes the following content processing issues:
•
Listing Content
•
Content Mirroring
•
Verifying GOIDs
•
Trick-Mode Issues
•
Name and Notify Services
•
CORBA Interface
Listing Content
To view the actual stored content versus what the database reports, enter the following commands:
The dumpDB command displays a menu that provides options for populating a list file with the selected information.
===============================
** DUMP (CDS) DB TABLES **
===============================
SELECT A TABLE TO DUMP TO FILE
1: CONTENT(s) (ctnobj.lst)
2: STREAM(s) (stmobj.lst)
3: SERVICE GROUP(s) & TSID(s) (svcgrp.lst)
5: STREAM SVC LIST (sslist.lst)
8: MSA UNPROCESSED(s) (unprocessed.lst)
9: MSA PROCESSED(s) (processed.lst)
===============================
===============================
To view the list file (for example, ctnobj.1st), go to the /arroyo/db directory and use the cat command or the vi command.
Content Mirroring
To enable content mirroring locally on one Vault, do the following:
Step 1
Modify the /home/isa/.arroyorc file by adding the following line:
cserver_opts "vault local copy count 2"
Step 2
Verify that the change has propagated to the /arroyo/test/vault/setupfile file.
The line "vault local copy count 2" should be added to the setupfile file.
Alternatively, enable local mirroring using the tunables. You can also use the tunables to verify the settings.
echo 2 > /proc/calypso/tunables/vaultlocalcopycount
Note
Using the echo 2 command to enable local mirroring in the tunable file only changes the local copy count temporarily. The local copy count resets to its original value on reboot. To configure the local copy count permanently for any value other than 1, edit the /arroyo/test/vault/setupfile or use the CDSM GUI.
To enable content mirroring between two Vaults, do the following:
Step 1
In the CDSM GUI, choose Configure > Server Level > Server Setup. The Server Setup page is displayed.
For more information, see the "Configuring the Servers" section.
Step 2
From the Server IP drop-down list, choose the IP address of the server.
Step 3
From the Vault Mirror Copies drop-down list, choose 2.
Step 4
Click Submit.
Step 5
Verify the change has propagated by looking at /arroyo/test/vault/setupfile and /arroyo/log/protocoltiming.log.<date> files.
# grep mirror /arroyo/test/setupfile
# grep LocalMirror /arroyo/log/protocoltiming.log.11202007
-LocalMirror Active=0:0 comp=0% obj=0.0/s read=0b/s write=0b/s copies=1
-LocalMirror Active=0:0 comp=0% obj=0.0/s read=0b/s write=0b/s copies=1
Verifying GOIDs
You cannot verify that the global object identifiers (GOIDs) among Vaults and Streamers are correct by comparing the total number of GOIDs on each server. There are actually multiple chains of GOIDs. If you list the GOID chains you can verify that the GOIDs are correct, because listing the GOIDs provides a summary at the end of the listing that reports any issues.
To list the GOIDs, enter the following command:
echo 2 > /proc/calypso/tunables/cm_logserverinfo
To list all GOID chains, enter the following command:
echo 4 > /proc/calypso/tunables/cm_logserverinfo
The /arroyo/log/serverinfo.log.<date> log file contains information about the GOIDs.
Note
There is no need to identify and delete damaged or orphaned GOIDs. CServer repairs any damaged GOIDs. Orphaned GOIDs are deleted when the server reboots.
Trick-Mode Issues
Verify the trick-mode settings in the CDSM GUI and the Vault setupfile file.
•
From the CDSM GUI, choose Configure > System Level > Ingest Tuning to view the trick-mode settings.
•
To check the trick-mode setting in the setupfile on the Vault, enter the following command:
$ grep trick /arroyo/test/setupfile
trickspeedsv2 4 10 32 -32 -10 -4
Check the /arroyo/log/c2k.log.<date> log file and the session message logs during playout to verify that the trick-mode files are being streamed.
Name and Notify Services
Ensure that the Name Service IP address and port, and the Notify Service IP address and port are correct.
•
Verify that you are able to telnet to the IP address and port for the NameService (port 5000 or port 2000) and the IP address and port for the Notify Service (port 5005 or port 2010). The port numbers are based on whether they are on the same host (5000/5005 ports) or a different server (2000/2010 ports).
•
Use the following commands to verify that the ISA configuration is correct:
$ cat /home/isa/IntegrationTest/.isa_env
CORBA Interface
Ensure that the CORBA-related parameters (including the Name and Notify services) are configured correctly. This includes the Content Service and CORBA Event Channel details such as the Content Store, Kind, Content Factory, Event Channel, Content Channel, Factory, and so on.
See the "CORBA Interface" section for more troubleshooting methods for CORBA. See the "Configuring the Streamer for BMS Connectivity" section and the "Configuring the Vault for BMS Connectivity" section for more information on configuring the CORBA-related parameters.
Cache-Fill Issues
This section covers the following cache-fill issues:
•
Tracking Cache-Fill Source
•
Rules for ISV Interoperability with Vaults and Streamers
•
Network
Tracking Cache-Fill Source
You can track whether or not a GOID for a stream is filling remotely or locally by enabling and tracking it in the fill.log. Streams can share the same GOID; in which case it is not possible to tell which stream is currently filling the data.
To track the cache-fill source of a stream, do the following:
Step 1
Find the stream that is playing in the c2k.log on the Streamer, along with the content that was requested (GOID number).
Step 2
Enable the fill.log on the Caching Nodes the Streamer is mapped to.
echo 1 >/proc/calypso/tunables/enableFillLog
Step 3
On the Caching Nodes, use the tail command to follow the log and grep for the GOID.
Following is an example fill.log:
18:30:23 44 DISK 000814a4132455c4 0000c1f7 to 00014e3e 0ea6 FINISHED 0x0000f558
18:30:24 4 NET 000864b26ab0a076 3fde3a14 to 3fe86299 3a98 TRUNCATE 0x3fdeb83c
18:30:24 4 NET 000864b26ab0a076 3fde3a14 to 40000000 3a98 FINISHED 0x3fdeb834
18:30:24 4 NET 000864b26ab0a076 3fde3a14 to 3fdeb83c 3a98 CANCEL 0x3fdeb93e
18:30:25 44 DISK 000884b7c94042f4 3ff3730d to 3ffca5d0 3a98 CANCEL 0x3ff3fcb5
18:30:25 43 DISK 000884b7c94042f4 3ff3730d to 3ffca5d0 3a98 FINISHED 0x3ff3fcb5
18:30:27 43 DISK 000814a4132455c4 0001fadb to 0002d79d 0ea6 START delay 14376
18:30:28 43 DISK 000854b26ab11667 3ffd2b92 to 3ffd4198 0ea6 FINISHED 0x3ffd4198
START - fill started from DISK or NET
TRUCATE - fill truncated to new ending sector offset
Burst and delay times are in microseconds. Bursts are sent immediately at a high rate. The delay time specifies when to start sending the data at rate, up to 30 seconds into the future.
If no Caching Nodes are reporting fill for the GOID, then the content is being filled from memory.
Step 4
Disable the fill logs on the Caching Nodes when finished.
echo 0 >/proc/calypso/tunables/enableFillLog
Rules for ISV Interoperability with Vaults and Streamers
The following rules apply for ISVs to interoperate with Vaults and Streamers:
•
An ISV can cache-fill both a colocated Streamer and a dedicated remote Streamer.
•
An ISV at one location cannot cache-fill a Streamer associated with an ISV at another location.
•
Two ISVs can mirror content with each other, but an ISV and a Vault cannot mirror content with each other.
•
A Vault cannot cache-fill an ISV.
Network
Note
For more network troubleshooting methods, see the "Network" section.
Stream Stops Playing at the Same Place or Does Not Play at All
Cause 1: Jumbo frames are not supported or configured on the cache-fill network switch.
Check 1: Search the c2k.log file for content read errors.
==> /arroyo/log//c2k.log.01152008 <==
15-Jan-2008 20:42:33 UTC :out:c2k_p_setcontentbundle: stream 3 localStreamHandlePtr 00000000 remoteServer 00000000
15-Jan-2008 20:42:33 UTC :out:c2k_p_setcontentbundlecontinue: stream 3 localStreamHandle 0
15-Jan-2008 20:42:33 UTC :out:c2k_p_setdestination: stream 3 localStreamHandle 0 ip 0xe0016401 port 10000
15-Jan-2008 20:42:41 UTC :out:igate goid d346434b982851 finished read 0 length e3 lastbytes b4 retries 0 reqlen 0/e3
15-Jan-2008 20:42:41 UTC :err:IGate::ReadClose(goid 0): ERROR: Never saw header
15-Jan-2008 20:42:41 UTC :err:IGate::ReadClose(goid 0): ERROR: Never saw EOF record
15-Jan-2008 20:42:44 UTC :out:igate goid d346434b982851 finished read 0 length e3 lastbytes b4 retries 1 reqlen 0/e3
15-Jan-2008 20:42:44 UTC :err:IGate::ReadClose(goid 0): ERROR: Never saw header
15-Jan-2008 20:42:44 UTC :err:IGate::ReadClose(goid 0): ERROR: Never saw EOF record
15-Jan-2008 20:42:47 UTC :out:igate goid d346434b982851 finished read 0 length e3 lastbytes b4 retries 2 reqlen 0/e3
15-Jan-2008 20:42:47 UTC :err:IGate::ReadClose(goid 0): ERROR: Never saw header
15-Jan-2008 20:42:47 UTC :err:IGate::ReadClose(goid 0): ERROR: Never saw EOF record
Check 2: Ping between the two devices.
Ping between the two devices on the cache-fill VLAN using a packet size greater than 1500 bytes.
Action 1: If the ping fails, verify that jumbo frames and cache-fill interfaces are configured correctly.
Verify that jumbo frames are enabled on the switch ports for the cache-fill VLAN, and verify that the cache-fill interfaces are configured correctly on the Streamers and Vaults. See the "Configuring the Servers" section for information on configuring the cache-fill interfaces.
Streaming and Playout Issues
This section includes the following streaming and playout issues:
•
Listing of Streams
•
No Streaming
•
Poor Video or Audio Quality
Listing of Streams
To monitor streams based on various criteria, go to the Stream Monitor page in the CDSM GUI by clicking Monitor > System Level > Stream Monitor. For more information, see the "Stream Monitor" section.
No Streaming
Some common causes for streaming problems are the following:
•
Server is in the process of being offloaded.
•
QAM device has no available bandwidth.
•
Tuning failure because of one of the following:
–
Error in the ARP table
–
QAM device is down
–
Network problem
•
Backoffice is out of synchronization with the CDS ContentStore, resulting in content not being found.
Following are some general methods for troubleshooting stream and playout issues:
•
View the /arroyo/log/streamevent.log.<date> file for stream setup activity.
•
Check for GOIDs in the /arroyo/log/c2k.log.<date> file.
•
Check if the stream setup is using /home/isa/IntegrationTest/list_all_streams or /home/isa/IntegrationTest/list_a_stream.
•
View the /home/isa/Berkeley/dumpDB file and use the vi ctnobj.lst command to check that the Vaults are synchronized.
•
Check content integrity by looking at the objectStatus for damaged GOIDs.
Stream Not Playing
Cause 1: A piece of content is missing.
In this case, a user can typically stream part of the content, but at some point the stream stops and this error is returned in the ANNOUNCE message. The content needs to be validated at the CServer level.
Action 1: Set up a stream to play to a multicast address.
If this is successful, then there is a network issue, which is either a default gateway or unreachable remote client. You can verify whether it is successful by looking at the /home/stats/ifstats information.
Action 2: If ifstats information does not detect a problem, try streaming to another multicast IP address.
Repeat streaming to a multicast address with different content and, if possible, ingest known good content. Check the protocoltiming.log.<date> for damaged GOIDs by using the following command:
tail -f protocoltiming.log.<latest date> | grep Goids
Cause 2: There is a problem reaching the destination QAM device.
The CServer returns the same completion code, so the same error is returned in the announce message. In this case, the content does not stream at all. The play request and play response are separated by about 10 to 15 seconds, instead of the typical subsecond separation. This is because of the ARP timeout process the CServer is going through to reach the destination. After stream response fails, the CServer calls back with the completion code of 3, which causes the "error reading content data" message.
Action 1: Check that the interfaces involved in the streaming are up and operating at the correct speed.
Using the CDSM GUI, choose Monitor > Server Level > NIC Monitor, choose the IP address of the server, and verify the participating interfaces are up and operating at gigabit Ethernet speeds. For more information, see the "Configuring the Interfaces" section.
Action 2: Set up a stream to play to a multicast address.
If this is successful, then there is a network problem, which is either a default gateway or unreachable remote client. You can verify whether it is successful by looking at the /home/stats/ifstats information.
Action 3: If streaming to a multicast address is not successful, check that the Vaults can be reached.
Check the /arroyo/log/protocoltiming.log.<date> log file for the number of reachable remote servers. Additionally, if there is a cache-fill issue, you will see a large megabit value for the re-xmit buffer.
You can also check the /arroyo/log/c2k.log.<date> log file for any unreachable Vaults.
Tuning Failure
Cause 1: Fail to tune error message (Error 104).
A "fail to tune" error message (Error 104 in the /arroyo/log/streamevent.log file) occurs when the CDSM starts a stream, but the stream fails to reach its destination.
Action 1: To verify the ARP table, enter the arp -a command.
Action 2: Verify there are no network problems; for example, reachability, network partition, and so on.
Action 3: Look for timeout intervals.
Look for characteristic 10 to 30 second timeout intervals between the stream setup and the stream destroy event messages in the /arroyo/log/c2k.log.<date> file.
Restarting the ISA Services
If it is necessary to restart the ISA services, then enter the following commands:
$ /home/isa/IntegrationTest/stop_all
$ tail -f /arroyo/log/ns_log
$ /home/isa/IntegrationTest/run_isa
Poor Video or Audio Quality
When content is streamed to a client device, if there is no video picture displayed on the client device and the audio is working fine, use the following troubleshooting methods:
•
Verify that the source is working properly and that the original content is of good quality.
–
Verify that the appropriate bit rates are being sent from the server using the following command on all Streamers:
–
Verify that the content plays locally, and on a test client device (for example, a VLC client).
–
Test playing the content on an alternate player with an AVC plug-in.
•
Verify that the CDS is configured correctly.
–
Check the run script in the /arroyo/test/run directory. There is a tunable set for Telenet to stream null packets when the end of the stream is reached. This should be commented out or removed in a non-Telenet environment.
–
The interface that you are using for real-time ingests needs to be configured for the CServer. There are a couple of settings that define the interrupt for the real-time ingest interface and ensure that a single central processing unit (CPU) is responsible for receiving the packets for the ingest. Without these settings, packets can be out of order, which can cause problems with the video picture.
To fix this, use the cat /proc/interrupts command to display the interrupts and find the interrupt value associated with the interface you are using for ingest. After you know this value, add the following lines to the /arroyo/test/run script:
echo 1 > /proc/irq/<interrupt value>/smp_affinity
echo <interrupt value> > /proc/calypso/test/bypass_disable_irq
You can enter these lines at the Linux command line as well. By doing so you do not have to reboot your system for them to take effect. Any content that you have previously ingested should be considered invalid.
See the "No Streaming" section for troubleshooting methods when there are streaming problems.
Session Messaging
All LSCP message requests and responses have the same format, which includes version, transaction ID, op code, status code, stream handle, and data. The LSCP messages are included in the /arroyo/log/LSCPService.log file. Table A-3 describes the LSCP status codes.
Table A-3 LSCP Status Codes
State
|
Code (hexadecimal)
|
Description
|
LSC_ OK
|
0
|
Success
|
LSC_BAD_REQUEST
|
10
|
Invalid request
|
LSC_BAD_STREAM
|
11
|
Invalid stream handle
|
LSC_WRONG_STATE
|
12
|
Wrong state
|
LSC_UNKNOWN
|
13
|
Unknown error
|
LSC_NO_PERMISSION
|
14
|
Client does not have permission for request
|
LSC_BAD_PARAM
|
15
|
Invalid parameter
|
LSC_NO_IMPLEMENT
|
16
|
Not implemented
|
LSC_NO_MEMORY
|
17
|
Dynamic memory allocation failure
|
LSC_IMP_LIMIT
|
18
|
Implementation limit exceeded
|
LSC_TRANSIENT
|
19
|
Transient error - reissue
|
LSC_NO_RESOURCES
|
1a
|
No resources
|
LSC_SERVER_ERROR
|
20
|
Server error
|
LSC_SERVER_FAILURE
|
21
|
Server has failed
|
LSC_BAD_SCALE
|
30
|
Incorrect scale value
|
LSC_BAD_START
|
31
|
Stream start time does not exist
|
LSC_BAD_STOP
|
32
|
Stream stop time does not exist
|
LSC_MPEG_DELIVERY
|
40
|
Unable to deliver MPEG stream
|
User-Defined
|
80-ff
|
User-defined
|
Database Issues
This section covers the following database issues and troubleshooting methods:
•
Database Replication
•
Corruption Recovery
Database Replication
This section covers the following database issues:
•
CDSM GUI Does Not Report All the Ingested Content
•
Many Log Files
CDSM GUI Does Not Report All the Ingested Content
First, verify that the package has not already expired.
Second, check for index errors in the CDSM database logs, using the following command:
$ grep index /arroyo/log/avsdb.log.20071106
11-06-2007 07:54:22PM:db_error DB_SECONDARY_BAD:Secondary index inconsistent with primary -30976
11-06-2007 07:54:22PM:db_error DB_SECONDARY_BAD:Secondary index inconsistent with primary -30976
11-06-2007 07:54:22PM:db_error DB_SECONDARY_BAD:Secondary index inconsistent with primary -30976
11-06-2007 07:54:22PM:db_error DB_SECONDARY_BAD:Secondary index inconsistent with primary -30976
11-06-2007 07:54:22PM:db_error DB_SECONDARY_BAD:Secondary index inconsistent with primary -30976
11-06-2007 07:54:22PM:db_error DB_SECONDARY_BAD:Secondary index inconsistent with primary -30976
The example output indicates that the Vault and CDSM databases are not synchronized, possibly because of the server times not being synchronized, a network connectivity issue, a server failure, or some other similar issue.
To check content among Vaults, use the /home/isa/Berkeley/dumpDB command.
For resolution, see the "Corruption Recovery" section.
Many Log Files
If one of the following conditions exists, it indicates that there were database replication errors:
•
There are many log files with a filename similar to log.00000XXXX in the /home/isa/Berkeley/DATADIR directory.
•
Database could not be started. See the "Services Monitor" section for more information.
•
Bidirectional connections are lost between servers. See the "Required Services Not Starting or Running Correctly" section.
•
The following error message is listed in the /arroyo/log/avsdb-err.log.yyyyMMdd file:
tavsdb: unable to allocate memory for mutex; resize mutex region
# tail -f avsdb-err.log.20081111
tavsdb: unable to allocate memory for mutex; resize mutex region
tavsdb: unable to allocate memory for mutex; resize mutex region
tavsdb: unable to allocate memory for mutex; resize mutex region
tavsdb: unable to allocate memory for mutex; resize mutex region
tavsdb: unable to allocate memory for mutex; resize mutex region
tavsdb: unable to allocate memory for mutex; resize mutex region
tavsdb: unable to allocate memory for mutex; resize mutex region
tavsdb: unable to allocate memory for mutex; resize mutex region
tavsdb: unable to allocate memory for mutex; resize mutex region
tavsdb: unable to allocate memory for mutex; resize mutex region
•
The /home/isa/Berkeley/DATADIR/REPLAY.db file increases to several GB.
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002824
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002825
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002826
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002837
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002838
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002839
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002841
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002840
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002843
-rw-r----- 1 isa isa 10485760 Nov 11 17:46 log.0000002842
-rw-r--r-- 1 isa isa 5726769152 Nov 12 15:23 REPLAY.db
For resolution, see the "Corruption Recovery" section.
Corruption Recovery
Caution 
Escalate to tier-three support before making any intrusive database changes.
If the CDSM database is corrupted and the Vault database is not corrupted, do the following:
Step 1
As user root, stop the CDSM database.
Step 2
Confirm that the database is shut down.
isa 2646 1 0 Jan09 ? 00:14:50 /home/isa/Berkeley/avsdb
root 26088 26059 0 13:23 pts/1 00:00:00 grep avsdb
Make sure there is no avsdb process returned. If the avsdb hangs, use the process ID (2646 in the above example) with the kill command.
Step 3
Delete all files in the /arroyo/db/DATADIR directory.
Step 4
As user root, stop the Vault database.
Step 5
Confirm that the database is shut down.
Step 6
Copy all files in /arroyo/db/DATADIR directory from the Vault to the CDSM.
Step 7
As user root, restart the Vault database.
Step 8
As user root, restart the CDSM database.
Step 9
Check the configuration on the CDSM and make sure no configuration parameters were lost.
Advanced Features and Applications
This section covers the Media Scheduler feature (live multicast ingest) and the Barker Stream feature.
Live Multicast Ingest
Live multicast ingest is available as part of the Media Scheduler feature or the Real-Time Capture feature.
Ingest with Media Scheduler
Using Media Scheduler for live multicast ingest requires the following procedures:
1.
Enable live ingest by setting both the Media Scheduler and the Ingest Manager to ON in the CDSM Setup. See the "Initializing the CDS and Activating the Optional Features" section for more information.
2.
Use the CDSM Input Channels page to configure the input channels. See the "Configuring Input Channels" section for more information.
3.
Upload channel schedules by importing the electronic program guide (EPG). See the "Uploading an EPG File" section for more information.
Ingest without Media Scheduler
Using Real-Time Capture for live multicast ingest requires the following procedures:
1.
Enable live ingest by configuring Ingest Manager ON and setting Real-Time Capture Type to Real-Time Capture (non-Media Scheduler) in the CDSM Setup page. Activate the Ingest Manager. Because the Ingest Manager is an optional feature, an activation key is required. See the "Initializing the CDS and Activating the Optional Features" section for more information.
2.
Use the CDSM CallSign Setup page to configure call signs with multicast IP addresses.
Ingest Troubleshooting
If the message "ERROR: Unable to login to the ftp location," is present in the /arroyo/log/aim.log file, check the FTP server configured in the Ingest Manager by using the ps -ef | grep ftp command. If the FTP service is not running, enter the service vsftpd start command to start it.
Barker Stream
If you are having issues setting up a barker stream, use the following troubleshooting method. The barker stream runs only on the master Streamer. To identify the master Streamer, use the CDSM Monitor Services page to find the Streamer running the master stream service. See the "Services Monitor" section for more information. Verify the following three items are present:
•
Valid content
•
Valid service group
•
Valid channel ID
For more information about barker streams, see the "Configuring Barker Streams" section.
Frequently Asked Questions
Many of the frequently asked questions (FAQs) responses were based on an ISV system, but guidelines can be easily extrapolated for a Vault and Streamer. This section covers the following topics:
•
Reliability and Availability
•
Serviceability and Manageability
•
Content
•
Other
Reliability and Availability
Q.
How do I enable stream resiliency?
A.
Log in to the CDSM with engineering access. The CDSM Setup page is displayed. For Stream Failover Support, choose "ON" and click Submit. For more information see the "CDSM or VVIM Setup" section.
Q.
How do I check and make sure the database is running properly?
A.
After starting the database, you should see two sockets (listening and non-listening) connecting to the database on each of the remote servers on port 9999. You can check them by using the netstat -an | grep 9999 command.
For example, the following output of the netstat command shows that the server (172.22.97.194) has both the listening and non-listening sockets binding on port 9999 to echo the four remote servers (172.22.97.192, 172.22.97.193, 172.22.97.195 and 172.22.97.191).
tcp 0 0 172.22.97.194:9999 172.22.97.195:48652 ESTABLISHED
tcp 0 0 172.22.97.194:9999 172.22.97.191:42732 ESTABLISHED
tcp 0 0 172.22.97.194:54563 172.22.97.195:9999 ESTABLISHED
tcp 0 0 172.22.97.194:39342 172.22.97.191:9999 ESTABLISHED
tcp 0 0 172.22.97.194:9999 172.22.97.192:40207 ESTABLISHED
tcp 0 0 172.22.97.194:41815 172.22.97.192:9999 ESTABLISHED
tcp 0 0 172.22.97.194:9999 172.22.97.193:33196 ESTABLISHED
tcp 0 0 172.22.97.194:43269 172.22.97.193:9999 ESTABLISHED
If you can not see both listening and non-listening sockets binding on port 9999 for each of the remote servers, the database is not running properly. Check that you have the correct replication group members in your /home/isa/.arroyorc file.
Serviceability and Manageability
Q.
How do I check the calypso server status?
A.
Log in to the server as root and enter the cat /proc/calypso/status/server_settings command.
Q.
How do I check central processing unit (CPU)?
A.
Log in to the server as root and enter the cat /proc/cpuinfo command.
Q.
How do I check the ISA server status?
A.
Log in to the server as root and enter the /home/isa/IntegrationTest/show_calypso_services command.
Q.
How do I check the kernel network driver version?
A.
Log in to the server as root and list the e1000.ko file to check the date and time it was created using the following command:
ls -l /lib/modules/<current running kernel name>/kernel/drivers/net/e1000/e1000.ko
The following example shows that the e1000.ko file is based on the kernel 2.5.18-53.el5.kernel.2_6_18.2009.01.08.01.
# ls -l /lib/modules/2.6.18-53.el5.kernel.2_6_18.2009.01.08.01/kernel/drivers/net/e1000/e1000.ko
-rw-r--r-- 1 root root 2617502 Jan 8 18:13
/lib/modules/2.6.18-53.el5.kernel.2_6_18.2009.01.08.01/kernel/drivers/net/e1000/e1000.ko
Q.
How do I stop, start, and, restart the Apache server on the CDSM?
A.
Log in to the server as root and enter the following commands:
# /arroyo/www/bin/apachectl stop
# /arroyo/www/bin/apachectl start
# /arroyo/www/bin/apachectl restart
Q.
How do I check the Streamer static ARP table?
A.
Log in to the server as root and enter the following command:
# cat /arroyo/test/ArpTable
ip 192.168.2.42 mac 000000000002
ip 192.168.2.43 mac 000000000002
Q.
How do I view the ARP Table dump file?
A.
Log in to the server as root and enter the following command:
# echo 1 > /proc/calypso/test/arp_dumpstate
Q.
How do I recover the system from the kernel debugger (KDB) after a reboot?
A.
If the server starts the KDB tool instead of rebooting, modify the /etc/grub.conf file as follows:
kernel /boot/vmlinuz-2.4.32avs ro root=/dev/hda1 console=tty0 console=ttyS0,115200
kdb=off panic=1
Q.
What do I do if the KDB prompt is displayed when the server restarts after a failure?
A.
Boot into single user-mode (see the "Kernel Crash" section).
Q.
How do I destroy an individual ISA stream?
A.
Use the Delete button on the Stream Monitor page. See the "Stream Monitor" section for more information. Alternatively, you can enter the following commands:
<name - as retrieved above>
If this does not work, for example, the stream just restarts, then the problem is not in the ISA subsystem.
Q.
How do I identify any holes in the content?
A.
Log in to the server as root and enter the following commands:
# echo 2 > /proc/calypso/tunables/cm_logserverinfo
# cat /arroyo/log/serverinfo.log.01132009
Look at the last two lines of output. If there are no holes, the last two lines should be the following:
BeingDeleted=0 HasHoles=0 CopyHoles=0 SectorHoles=0
Object Status Check Complete.
Q.
How do I clear cached video blocks (data cache) on the Streamer?
A.
Log in to the server as root and enter the echo 1 > /proc/calypso/test/clearcache command.
Q.
How do I clear the data cache in memory?
Log in to the server as root and enter the echo 1 > /proc/calypso/test/clearmem command.
Note
Make sure there are no streams running before you use this command. If there are streams, the data cache in memory is not cleared.
Q.
How do I destroy all streams?
A.
Log in to the server as root and enter the following commands:
All sessions are removed, and upon restarting the services, all streams that do not have an associated session are stopped.
Q.
How do I delete an individual stream from the database?
A.
Log in to the server as root and enter the following commands:
After the colon for the Name command, name everything that was listed in the Get All command.
Q.
How do I destroy all streams when none of the above methods work?
A.
Log in to the server as root and enter the following commands:
[root@ssv3 root]# /usr/bin/db_shutdown
[root@ssv3 root]# ps -ef |grep avs
Wait for all avs processes to stop, then reboot the server.
Q.
How do I check the routing table and gateway?
A.
Log in to the server as root and check the file /arroyo/test/RoutingTable.
# cat /arroyo/test/RoutingTable
default gateway 192.169.131.250
network 192.169.131.0 netmask 255.255.255.0 gateway 0.0.0.0
default cache gateway 192.169.131.250
local cache network 192.169.131.0 netmask 255.255.255.0
Content
Q.
How do I get information on a content stream that seems corrupted; for example, there is macroblocking, the stream stops and restarts, and so on?
A.
Log in to the server as root and enter the following commands:
# echo 2 > /proc/calypso/tunables/cm_logserverinfo
# cat /arroyo/log/serverinfo.log.01132009
Check the last set of output lines to see the current content states.
Object Count=37708 LengthUnknown=0
CouldNotRepair=0 IsDamaged=0 BeingRepaired=0 BeingCopied=0
needCrcValidate=37708 isFragFlag=0 isFragd=0 Defrag=0 Smooth=0
BeingFilled=0 OutOfService=0 NeedsISACheck=0
BeingDeleted=0 HasHoles=0 CopyHoles=0 SectorHoles=0
Object Status Check Complete.
Q.
How do I know if a content object has "holes"?
A.
Log in to the server as root and view the /var/log/debugmessages. There is a message in the debug messages file about the GOID and the content holes.
Q.
How do I delete ingests that are "stuck" in the active ingest state?
A.
Log in to the Vault as root and enter the following commands:
Choose the following options, one for each menu:
a.
VAULT DATABASE
b.
CONTENT OBJECT
c.
DELETE
Enter the content ID of the "stuck" ingest, then choose the exit option for each menu until you are back at the Linux prompt.
Q.
How do I manually ingest content from the command line?
A.
Log in to the Vault as root and enter the following commands:
Update the SDClient.cfg file with the local IP address.
Follow the SDClient menus.
Other
Q.
How do I view the CServer code configuration file?
A.
Log in to the server as root and enter the cat /arroyo/test/<server type>/setupfile command. The server type is one of the following: vault, streamer, or ssv.
# cat /arroyo/test/<server type>/setupfile
# CServer core configuration. Changes to this file require
local 0 0 2 remote 0 0 2 fill 3 1 maxrate 900000 localip 0c0a80040
e1000 adapters: maxrate 965
e1000 0: streaming 1 fill 0
e1000 1: streaming 1 fill 0
e1000 3: streaming 0 fill 1
trickspeedsv2 10 0 0 0 0 0 0 0
ftpout if eth0 max utilization mbps 0 max sessions 0
Q.
How do I know if a subsystem on a server is overloaded?
A.
View the .arroyo.log.protocoltiming.log.<date> file. When you see the "COST REQUEST NO CAPACITY:" message, it means that the server is running out of capacity and it cannot accept new streaming requests.
Also, when you see a line in the /arroyo/log/c2k.log.<date> file that says the following:
01-May-2007 17:40:44 UTC :err:ServeStream::reserveStream: refused streamhandle 4 for
goid a445c9780e7f8f due to its load 3750, current load 0
This entry typically means there are no stream ports linked. In the ten-second snapshot of the /arroyo/log/protocoltiming.log.<date> file, there is a line that shows load values for each of the major subsystems (LAN, memory, CPU, and so on). More than likely one of the subsystems is at 100, which is the subsystem that is having the problem.
Q.
How do I enable debugging?
A.
Log in to the server as root and enter the following commands:
# ~/IntegrationTest/debugging_on_off
Q.
How do I update the remote servers from /arroyo/test/RemoteServers?
A.
Log in to the server as root and enter the following commands:
# echo 1 > /proc/calypso/test/readremoteservers
CDS Content Quality Guidelines
This section covers the following topics:
•
Supported Elementary Stream Types
•
Scrambling
•
Transport Bit Rate
•
Stream Length
•
Format Restrictions
•
Preferred Formats
Supported Elementary Stream Types
Video-only, audio-only (as well as audio streams with only a few or occasional video frames) and data-only streams are supported in addition to the customary multiplex of both audio and video.
Scrambling
The transport layer cannot be scrambled, meaning the transport header and any adaptation field must be in the clear. Streams whose Elementary Streams (ESs) are fully scrambled, including all start codes, are capable of being ingested and streamed, but are incapable of trick play.
For trick-play capability, the following cannot be scrambled:
•
Packetized Elementary Stream (PES) headers
•
Program Association Table (PAT) and Program Map Table (PMT)
•
Closed-caption data (if scrambled, the data is incorrectly included in tricks)
Transport Bit Rate
All transport streams are constant bit rate (CBR). Variable bit rate (VBR) is not supported. The maximum bit rate is 35 Mbps. There is no minimum bit rate. The ES video bit rate, as specified in the MPEG-2 sequence header, is ignored. The bit rates of individual ESs do not matter. The CBR for an individual ES (in particular the video) is not required. All that is required is that the aggregate transport stream be CBR.
Streams containing MPEG-2 or AVC video are expected to conform to the appropriate buffer models spelled out in ISO/IEC 13818-1 and 14496-10.
Stream Length
All content must be at least one second in length. A content item must be under 12 hours in length or 15 GB, whichever comes first.
Format Restrictions
Following are the format restrictions for Advanced Video Coding (AVC), H.264, and MPEG-4:
•
Sequence Parameter Set (SPS) seq_parameter_set_id flag must be zero.
•
SPS pic_order_count_type flag must be zero.
•
SPS seq_scaling_matrix_present_flag must be zero.
•
SPS profile_idc flag must only be Baseline, Main, or High profile.
Preferred Formats
Using the following guidelines improves the performance of the system, the quality of the tricks, and the trick transitions.
1.
All content should be encoded as a Single Program Transport Stream (SPTS). If multiple programs must be included (for example, a Picture-in-Picture [PIP] stream), ensure that the "real" program is encoded with the lowest program number.
2.
All content should follow the process ID (PID) numbering specified in the Content Encoding Profiles 2.0 Specification (MD-SP-VOD-CEP2.0-I02-070105), section 6.7.5. Regardless, the audio and video PIDs should be above 0x20.
3.
All content should be preceded with a Program Association Table (PAT) and then a Program Map Table (PMT), and then a Program Clock Reference (PCR) before the first audio or video frame. Optionally, the discontinuity bit can be set.
4.
All content should use the same PID for both PCR and video.
5.
All content should begin with a closed Group Of Pictures (GOP) for MPEG-2 or with an Instantaneous Decoder Refresh (IDR) frame for AVC. This first frame is always accompanied by a sequence header for MPEG-2 or by an SPS for AVC.
6.
To guarantee relatively smooth looking trick modes, the minimum I/IDR-frame frequency should be eight per second. If the minimum trick speed is 4x or less, the I/IDR-frame frequency should be at least two per second. In no case should two I/IDR frames be more than two seconds apart.
7.
Each I-frame should be preceded by a sequence header and GOP header if any exist for an MPEG-2 video. Each I/IDR frame should be preceded by an SPS and Picture Parameter Set (PPS) for H.264 video.
8.
Avoid mixing frame data from multiple video frames in the same transport packet. Specifically, no data belonging to the prior frame exists following the Packetized Elementary Stream (PES) packet header for the next frame. Breaking this rule may improve encoding efficiency slightly, but degrades the quality of the tricks on certain set-top boxes (STBs).
9.
All content must be encoded as a single sequence, with no changes in horizontal or video resolutions, or changes in encoding parameters in the middle of the content.
10.
The GOP size may be variable, but GOPs should generally not exceed two seconds. Using longer GOPs may improve encoding efficiency, but the quality of lower-speed tricks (3x, 4x) may suffer.
11.
No more than four B-frames should be used between each pair of I-frames or P-frames.
12.
There should be no continuity counter errors in the content.
13.
There should be no discontinuities in the content, other than an optional one on the first PCR.
14.
The accuracy requirements for PCRs, +/- five parts per million (5 ppm), as stated in ISO/IEC 13818-1, must be adhered to throughout the stream.
15.
Audio and video are expected not to overflow the appropriate target buffer model specified.
16.
A reasonable bit rate to use when encoding MPEG-2 standard definition (SD) video is 3.75 Mbps.
17.
A reasonable bit rate to use when encoding MPEG-2 high definition (HD) video is 15 Mbps.
18.
Appropriate bit rates for carriage of AVC are still being established, and while they are expected to be at least half the bit rates of MPEG-2, no specific recommendations can be offered.
19.
There may be PIDs in the content that are not specified in the PMT. Such use is beyond the scope of this document.
20.
All PATs and PMTs should be identical, with the same version number throughout.
21.
The CDS support up to 30 Mbps MPEG-2 video encoding.
22.
Content is filtered out if three occurrences of one-second synchronization lost are identified.
23.
Content is filtered out if five seconds of null frames are identified.