Prerequisites

This version of the Skoll client is designed for Unix-style systems and depends on a couple software packages.

Additionally, the following tools are needed to compile most test targets.

Obtaining and installing the MySQL/Skoll Client:

  1. First, go to http://www.cs.umd.edu/projects/skoll/contribute/ and download the current version of MySQL/Skoll Client. The client package is distributed as gzipped tar ball file.
  2. Next, extract the client files from the package, using the following command:
    % tar xvzf skoll-x.x.x.tgz
    This will create a directory called skoll in the current working directory.
  3. Confirm that the skoll directory contains the following three items:
    • changelog: This file contains the change history of the MySQL/Skoll Client.
    • start: This is a shell script that executes the Java MySQL/Skoll Client.
    • SkollClient.jar: The Java Skoll Client application.
    • util: This directory contains libraries and utilities needed by the MySQL/Skoll Client.
  4. Customize your client by setting the following variable in the start script
    • START_PATH: The path to any and all tools necessary to compile MySQL. Specifically: gcc, make, and bzr should all be in the path listed here.

Running MySQL/Skoll Client:

Run the MySQL/Skoll Client using the following command

% ./start
The script will trace client execution through four major stages:
  1. Downloading latest MySQL source code from Bazaar repository.
  2. Compiling MySQL.
  3. Running tests on the compiled executables.
  4. Sending execution log back to Skoll server.
Execution can take anywhere from 30 minutes up to a few hours depending on how many test fail only after timing out. When the execution is near completion, you should see a message stating "Skoll Testing Completed: [time]"; this marks the end of configuration tests. Next, the client will attempt to send the execution log back to Skoll project server for analysis. The client first tries to FTP the log to the Skoll poject server. If FTP fails, client then tries to email the log. HTTP upload will be added in the near future as the first option for log transmission.

Scheduling the MySQL/Skoll Client for periodic execution:

The skoll client is meant to be run periodically (as system workload allows). The simplest method of automatically invokling skoll is to run it periodically using cron. Since the execution time of a test suite varies with a number of factors, we have included a script (util/skoll_cron.sh) that ensures only one instance of skoll is running at a time. Users can invoke this script as often as desired, but a new test job will only start if previous jobs are not running.

To schedule MySQL/Skoll Client for periodic execution, run the command:

% crontab -e
An editor window will appear, allowing you to enter the appropriate job. Here are some example crontab entries:
  • Attempt to run Skoll every 15 minutes:
    0-59/15 * * * * [path to MySQL/Skoll Client]/util/skoll_cron.sh 1>& /dev/null
  • Attempt to run Skoll every hour:
    0 * * * * [path to MySQL/Skoll Client]/util/skoll_cron.sh 1>& /dev/null
  • Attempt to run Skoll every 2 hours:
    0 0-23/2 * * * [path to MySQL/Skoll Client]/util/skoll_cron.sh 1>& /dev/null
  • Attempt to run Skoll every night at 2am:
    * 2 * * * [path to MySQL/Skoll Client]/util/skoll_cron.sh 1>& /dev/null
After saving and exiting crontab, you can check if the cron job is scheduled correctly by running the command:
% crontab -l

Viewing Test Results:

For this process, we are interested in understanding where configuration-related bugs might be hiding. To figure this out, we periodically analyze test results by models of failing test cases. These models try to express the options and their specific settings that lead to test failures. Users can see the results of this analysis http://www.cs.umd.edu/projects/skoll/results/mysql51/.

The Skoll team thanks you for your participation. Please send any comments or questions to skoll@cs.umd.edu. Thanks again!