Released July 27, 2017


  • This release is primarily a minor feature and bugfix release. Please review the notes below for a list of changes made to each component.
  • Full support of the perfSONAR toolkit on Ubuntu 16 (Xenial Xerus) and Debian 9 (Stretch)

Detailed Bug Fixes and Changes


  • Added support for source, dest and endpoint limits to throughput, latency, latencybg, rtt and trace tests. These should allow test types to be limited to a single interface. The source and dest limits match their respective fields whereas the endpoint limit matches as long as one of the source OR dest is in the provided range.
  • pScheduler is now able to run on non-standard port. Testers can communicate with it using the source-node and dest-node options for tests
  • Added backup and restore scripts for pscheduler database
  • Added pscheduler troubleshoot command to help troubleshoot pscheduler problems
  • Made the scheduler multithreaded to limit effects of slow running jobs
  • Added stronger enforcement of schema version between pscheduler components
  • Added verification of privileges when sending ICMP probes with traceroute
  • Added configuration file for iperf2 tool plug-in
  • Added better error handling when no source interface detected
  • Removed Apache version from Apache generated pages
  • Better error handling when one end of multi-participant tests does not return JSON
  • Changed pscheduler-core dependency from gnuplot to gnuplot-minimal
  • Better error handling in esmond archiver when POST and PUT requests get redirection status codes
  • Fixed parsing and generation of IPv6 URLs in various places
  • Fixed ping tool to properly detect when it needs to use IPv6
  • Added API calls to validate archiver and test specifications
  • Added restart to database on python-pscheduler update
  • Added short form command-line options to trace and rtt task commands
  • Added reason for non-start status to pscheduler schedule command output
  • Added –color and –delta options to pscheduler monitor command
  • Added support for getting detailed list of tasks in one API call with expanded and detail options
  • Added commands to make sure pscheduler user account does not expire
  • Better error handling in iperf3 tool when no JSON returned
  • Improved calculation of bandwidth when applying limits

Bundles and Shared Libraries

  • Added additional perfsonar version information to the lookup service to beter track betas and release candidates
  • Added iproute to package requirements for bundles


  • Added workaround to make sure cassandra’s pid directory gets created after reboot
  • Added esmond_manage script so no longer need to switch to virtualenv by hand to perform management tasks.
  • Added support for event types packet-rtt, packet-rtt-subintervals, tcp-windowsize, tcp-windowsize-subintervals, streams-packet-rtt, streams-packet-rtt-subintervals, streams-tcp-windowsize, and streams-tcp-windowsize-subintervals
  • Fixed to properly handle case where the -c option is not provided


  • Completely removed old graph files
  • Removed Net::Interface dependency
  • Using local copy of jQuery instead of version from CDN to avoid firewall issues
  • Added clickjacking mitigation HTTP headers
  • Cleaned-up handling of timezones and date parsing
  • Added 12 hour option to graphs with summary window 0
  • Fixed issues where failures would not always display on graphs

LS Registration Daemon

  • Removed NDT and NPAD from list of services registered
  • Fixed typo in error message that incorrectly referred to configuration option
  • Removed Net::Interface dependency
  • Added host-os-architecture key that registers host processor architecture as standalone field


  • Disable displaying Apache version in default page listings
  • Added maddash-server.env file where Java command-line options can be set that won’t be overridden on update


  • Added bug fix to properly clear out global measurement archives set by pre-4.0 mesh-config agents
  • Removed outdated reference to pinger-landmarks file in error message
  • Fixed formatting of IPv6 addresses in URLs so they include square brackets. Generally occurred when a test endpoint was an IPv6 address.
  • Greatly reduced the number of HTTP GET requests by using a bulk request to get list of pScheduler tasks


  • Improved parsing of CPU speed
  • Removed lingering NDT/NPAD references
  • Fixed issue where forgetting the trailing / in /tookit/auth/ URL would not redirect to https on some hosts
  • Updated location abbreviations
  • Removed Apache version from generated pages and HTTP headers
  • Added nuttcp option for throughput tests
  • Added default bandwidth for UDP tests created on GUI
  • Fixed NTP restarts in configuration script to make sure all changes get applied
  • Added numerous HTTP security headers to help prevent cross-site scripting and other types of attacks. These do not address a specific threat, were just added as best practice.
  • Fixed inaccurate test counts on GUI
  • Updated NTP GUI to display reference ID from ntpq
  • Added two European servers to NTP server list in GUI
  • Created new perfsonar-toolkit-systemenv-testpoint package to handle basic host configuration for a testpoint not running httpd or other services
  • Moved apache security configuration to perfsonar-toolkit-security package

Raw changes

Updated components: