Released March 27, 2017

Features/Changes Highlights

  • This release candidate contains numerous performance optimizations, bug fixes and quality of life improvements. See detailed notes below for more information
  • NOTE: Changes are since 4.0 RC2. For a full list of changes from 3.5.1 see the RC1 release notes and RC2 release notes

Detailed Fixes and Changes

Bundles and Shared Libraries

  • perfsonar-core package now responsible for adding localhost MA to meshconfig-agent-tasks.conf instead of having set for all bundles
  • Added default ulimits file on CentOS 6 that increases allowed process count for httpd and pcheduler from 1024 to 4096. This matches the system default for CentOS 7.


  • No changes

Central Management

  • No changes


  • Fixed IP authentication when behind a web proxy
  • Automatically detecting encoding and locale in postgresql-9.5 upgrade script
  • Fixed httpd restarts on CentOS 7 when RPM updates
  • Added support for pscheduler-run-href event type


  • Fixed issue where duplicate values were retrieved
  • Fixed issue where individual values failing to load caused whole graph to fail to load
  • Added packets sent and lost to tooltips
  • Added measurement-agent filter support
  • Added title bar and shareable link
  • Updated to display timezone GMT+OFFSET
  • Updated summary window selection
  • Better error indicator when no data found in measurement archive
  • Added backward compatibility for older MAs not supporting CORS
  • Fixed scroll jumps when performing various actions
  • Added retransmit tooltip
  • Fixed issue where time period would create incorrect view
  • Tooltips can be locked/unlocked to screen by clicking them
  • Negative latency values now appear in tooltip
  • Fixed numerous IE compatibility issues
  • Added tool names to tooltips
  • Added ability to expand/collapse sections of tooltip


  • No changes

LS Cache Daemon

  • No changes

LS Registration Daemon

  • Fixed pscheduler registrations so they only publish https URL
  • Fixed issue where web service (e.g. oppd, ma, pscheduler) based records were losing track of their parent host record
  • Added ability to track whether perfSONAR was installed with NeInstall or FullInstall ISO


  • Added newline to the end of default configuration file to make meshconfig-guiagent happy
  • Fixed syntax errors in default configuration file in alert rules
  • Defaulting to /usr/lib64 for nagios checks in default config


  • Fixed logging permission issues for meshconfig-guiagent
  • Fixed issue where perl considered maddash.yaml filename tainted
  • Updated all test parameters to match pscheduler
  • Properly set reverse URL in disjoint case with combined graphs
  • Added dependency on perl-Mo
  • Updated default path to nagios checks
  • Improved detection of changes to MA authentication settings
  • Removed explicit setting of default summaries
  • Added support for setting custom reference parameters
  • Added created_by field in meshconfig-agent-tasks.conf so clear where test came from
  • Fixed uninitialized concatenation warning when no mesh description provided
  • Fixed issue where did not fallback properly to IPv4 mesh URL when IPv6 failed
  • Updated meshconfig-guiagent defaults to more sane values
  • Updated agent to define measurement archive only for tests it creates, not all tests in file
  • Now support defining multiple MAs of same type
  • Can now set configure_archives at mesh level in meshconfig-agent.conf so only individual meshes have their archives configured
  • Added support for simplestream tests and dashboards. Should only be used by developers for debugging.
  • Added support for ping and traceroute dashboards to guiagent
  • Fixed issue where client was not properly timing-out
  • Fixed issue where agent was not setting correct start and end times on new tasks
  • Made retry policy a configurable parameter for measurement_archive blocks
  • Made default retry policy less aggressive
  • Fixed issue where agent would ask remote pscheduler to register to localhost
  • Removed localhost MAs from default config file. Now will get added bu perfsonar-core bundle.
  • Added support for bind_address,lead_bind_address and pscheduler_address options that can be useful in certain setups with private default routes


  • Removed unnecessary logging


  • Cleaned-up defunct pkill process left by powstream tool
  • Now sending logging to syslog local4 which redirects to /var/log/pscheduler.log
  • Added support for limits
  • Added new background-multi class to support tests that should not be interrupted when run in parallel with other tests.
  • Normal tests class added that can run in parallel with each other, but not exclusive tasks
  • Added multi-threading to archiver
  • Changed default nuttcp port from 5000 to 5001 to match published firewall suggestions
  • Bug fix for handling spacing in nuttcp output
  • Updated nuttcp tool to require 8.1.4 of nuttcp
  • Updated esmond archiver to properly report error status when gives up on retries and to report a better message
  • Better exception handling in esmond archiver
  • Numerous SQL query optimizations
  • Updated to use versions of python-flask, python-jinja2, python-werkzeug and python-dns from main CentOS repo
  • Ordered archiving by newest so most recent entries get retried first
  • Added pscheduler ping command to check status of pscheduler server
  • Fixed bug where user-provided summaries were ignored by esmond archiver
  • Updated powstream default duration to 24 hours
  • Fixed multiple issues causing powstream not to properly exit, leading to duplicates
  • Handling IPv6 addresses in pscheduler URLs given to command-line client
  • Check for pscheduler as well as BWCTL on the remote side when determining if backward compatibility mode is needed.
  • Added task-href and run-href to archiver input parameters
  • Added memcached support to esmond archiver for tracking metadata objects already created in order to increase archiver performance
  • Fixed bug where esmond requests would not timeout when talking to the server
  • Added new summaries for packet-count-lost and packet-count-sent to defaults set by esmond archiver in support of new graphs
  • Added TTL to archiver so backlogged attempts don’t stay in queue forever
  • Added pscheduler clock command for checking clock status of pscheduler servers
  • Created a RabbitMQ archiver
  • Added statistics in REST API about archiving and the http queue, including result of archiving in run
  • Added support for “default limits”, parameters that automatically get applied if the parameter is unspecified.
  • Removed firewall manipulations from pscheduler packages
  • Made flow-label parameter consistent across all tools
  • Gave iperf3 tests greater lead and follow-up time to complete
  • Better error message when multiple participants on same host
  • Fixed required fields in latency and latencybg tests to enforce properly
  • Normalized use of ip-tos field across all tools
  • Normalized use of ip-version field across all tools
  • Added plot-schedule command that creates visualization as .png of schedule
  • Replaced randslip option with boolean sliprand. Indicates to randomly pick time within slip
  • Added ability to filter runs by test type in schedule command
  • Added support for bind and lead-bind options. Also added source-node to tests and dest-node to multiple participant tests. Should help with various non-standard routing scenarios
  • Using threads instead of processes in scheduler
  • More quickly killing powstream commands after restart
  • Fixed issues with iperf3 not properly binding when DNS names are dual-stacked
  • Fixed numerous issues where scheduler was excessively trying to rechedule a test or using the wrong time windwo to do so
  • Added time tag to powstream directory to prevent conflicts on restart
  • Cleaned-up use of timeouts in tools that were leading to various errors such as wrong tool selection
  • Only allow operations such as cancel if requested by one of the participants
  • Added DNS tool for measuring DNS performance
  • Added HTTP archiver for sending HTTP request with results to given URL using specified HTTP operation(POST, PUT, etc)
  • Numerous error message clean-up, syntax clean-up and catching of unhandled exceptions


  • Fixed issue where lo interface was selected as primary
  • Fixed auto-update toggle on CentOS 7
  • Changed cassandra process detection to use process name since cassandra package has inconsistent use of pid file on CentOS 7
  • Fixed formatting issues when displaying interface details
  • Added htpasswd support to manage_users script
  • Disabled chronyd by default on CentOS 7 which was preventing NTP from running properly
  • Fixed issue where “Loading values…” never went away on main toolkit page
  • Fixed broken links on toolkit homepage
  • Cleaned-up various test listing issues related to directionality and duplicate tests
  • Added pscheduler support to backup scripts
  • Updated default limits to be closer to BWCTL but also allow 50m UDP tests
  • Fixed firewall setup of owamp control port
  • Removed code that was altering wheel group since perfsonar no longer uses that group
  • Fixed bug preventing use of subinterfaces in mod_interface_route script
  • The configure_sysctl script now detects OS, interface speed, and maximum MTU to determine how best to tune host
  • Removed NDT checks from configure_nic_parameters
  • Updated labels on web interface containing the phrase “RPM” to be less OS-specific
  • Fixed bug caused by trailing whitespace in values input through the web interface
  • Changed owamp-server regular restart to once a week
  • Created symlink in /var/log/perfsonar to /var/log/pscheduler
  • Created symlink to web admin configuration files in /etc/perfsonar/toolkit/web
  • Fixed bug that prevented users from getting added by user managemern script
  • Made traceroute the default over tracepath in GUI
  • Fixed recursive symlinks created by .spec file
  • Moved user prompts out of .bashrc and into /etc/profile.d
  • Fixed call to tracepath in reverse_traceroute.cgi script
  • The Open perfSONAR Perl Daemon (OPPD) is deprecated now. The OPPD packages are still installed by a regular perfsonar-toolkit installation, but the service is not started.

Raw changes

Updated components: