Understanding the support bundle for Linux PCoIP agents

Rate this Article
Average: 1 (1 vote)

Support bundles can be generated on a Linux agent by running the pcoip-support-bundler(1) command. The command must be run as root and will generate a gzipped tar file in /tmp, outputting the name of the generated file (something like supportbundle-agent-{date}.tar.gz). A man page is also shipped that provides some information about the support bundler, it can be viewed by running man pcoip-support-bundler.

What's in it?

At the top level there will be three items:

  • a folder named "files", containing files captured from the file system that pcoip-support-bundler was run on
  • a folder named "out", containing the output of commands run by pcoip-support-bundler
  • a file named "support-bundler.out", containing output captured from pcoip-support-bundler

Captured Files

  • /run/pcoip-agent - this folder contains private runtime files for the agent: the xauthority cookie used by the X server, mailbox sockets, the launcher socket and the authentication proxy socket
  • /var/log/pcoip-agent - this folder contains all of the agent's log files
  • /var/crash/pcoip-agent - this folder may contain core dumps if any of the PCoIP processes crash
  • /var/crash/*pcoip* - this will capture any apport processed PCoIP related crash dumps (Ubuntu only)
  • /var/log/syslog* - this captures all files in /var/log containing "syslog" in the name
  • /var/log/messages* - this captures all "messages" files in /var/log
  • /var/log/auth.log - this captures the auth log, which can be helpful debugging PAM related issues
  • /var/log/Xorg* - this captures all of the Xorg logs
  • /etc/pcoip-agent - this folder contains the configuration file for the agent and potentially any certificates (if configured)
  • /etc/X11/default-display-manager - this file contains the name of the default display manager (Ubuntu only)
  • /etc/lsb-release - this file contains information about the version of the OS
  • /etc/redhat-release - this file contains information about the Redhat version (RHEL/CentOS only)
  • /etc/issue - this file contains general information about the OS release
  • /run/log/journal - this folder contains log files for systemd (non-persistent storage)
  • /var/log/journal - this folder contains log files for systemd (persistent storage)
  • /var/log/audit - this folder contains selinux audit logs (RHEL/CentOS only)

Commands run

When running commands standard out, standard error (if any) and the status (if non-zero) are output to files. The file format for standard out is <command>.out, standard error is <command>.err and status is <command>.status, where <command> is one of the commands listed below:

  • dpkg -l "*pcoip*" - provides information about package status for all packages with "pcoip" in the name (Ubuntu only)
  • dpkg -l "*teravfb*" - provides information about package status for all packages with "teravfb" in the name (Ubuntu only)
  • ls -l /var/crash - lists all files in /var/crash
  • ls -lRZ /run/pcoip-agent - recursively lists all files including security context in /run/pcoip-agent (security context will only be shown in RHEL/CentOS)
  • ls -lZ /var/log/pcoip-agent - lists all files with security context in /var/log/pcoip-agent (security context will only be shown in RHEL/CentOS)
  • pgrep -l pcoip - lists all processes with "pcoip" in the name
  • ss -ax - provides information about all unix sockets
  • systemctl status pcoip - shows the status of the PCoIP systemd service
  • who - lists all active logged in users (terminals, ssh, Xorg, etc)
  • pcoip-view-license - shows the status of locally installed licenses
  • pcoip-validate-license - shows whether any licenses were available when the support bundler was run
  • rpm -qai "*pcoip*" - provides information about package status for all packages with "pcoip" in the name (RHEL/CentOS only)
  • rpm -qai "*teravfb*" - provides information about package status for all packages with "teravfb" in the name (RHEL/CentOS only)
  • semodule -l - lists all currently enabled selinux modules (RHEL/CentOS only)
  • sestatus - shows the current status of selinux (RHEL/CentOS only)
  • firewall-cmd --list-services - shows enabledfirewalld services (RHEL/CentOS only)
  • ps wwauxfZ - lists all running processes, including the user and security context they are running under (security context will only be shown in RHEL/CentOS)
  • netstat -Wnap - lists all active sockets and the processes they belong to
  • dmesg - prints messages from the kernel ring buffer, can be useful for graphics agent debugging (e.g. if the nvidia driver could not be loaded, this may contain useful information)
  • lsof - lists open file descriptors, this is run for each of the pcoip-* processes running when the support bundler is invoked

Interpreting the data

After a clean Ubuntu Server install, if you forget to install a desktop before attempting a PCoIP session, you will get the following in the /var/log/pcoip-agent/session-launcher.log:

LVL:1 RC:-500        LAUNCHER :receiveMessage: Failed to process launcher request. No desktops installed.  Cannot launch a session.

Q: How can I tell what GPU is present?

The information is in the Xorg config (/var/log/Xorg.100.log) and is logged while the driver is being set up.

Q: How can I tell what hypervisor my Agent software is running on?

The information is in out/dmesg.out and should be near the top saying "Hypervisor detected: <hypervisor>".