Gathering information for SQream support

When you encounter a problem that you can’t solve by yourself, SQream Support is here to help.

Getting support and reporting bugs

When contacting SQream Support, we recommend reporting the following information:

  • What is the problem encountered?
  • What was the expected outcome?
  • How can SQream reproduce the issue?

If comfortable, attach as many of the following:

  • Error messages or result outputs
  • DDL and queries that reproduce the issue
  • :ref:Log files<logging>`
  • Screen captures if relevant

SQream support may have additional questions or requests, based on the information provided.

How SQream debugs issues

Reproduce

To debug most issues, we need to reproduce the problem. Some problems are repeatable, and can be repdroduced even without accessing the problematic database.

Reproducing an issue consists of understanding:

  1. What was SQream DB doing at the time?
  2. How is the SQream DB cluster configured?
  3. How does the schema look?
  4. What is the query or statement that exposed the problem?
  5. Were there any external factors? (e.g. Network disconnection, hardware failure, etc.)

See the Collecting a reproducible example of a problematic statement section ahead for information about collecting a full reproducible example.

Logs

The logs produced by SQream DB contain a lot of information that may be useful for debugging.

Look for error messages in the log and the offending statements. SQream’s support staff are experienced in correlating logs to workloads, and finding possible problems.

See the Collecting logs and metadata database section ahead for information about collecting a set of logs that can be analyzed by SQream support.

Fix

Once the issue is reproduced, it can be fixed.

A fix can be issued as a hotfix to an existing version, or as part of a bigger major release.

Your SQream account manager will keep you up-to-date about the status of the problem reported.

Collecting a reproducible example of a problematic statement

SQream DB contains an SQL utility that can help SQream support reproduce a problem with a query or statement.

This utility compiles and executes a statement, and collects the relevant data in a small database which can be used to recreate and investigate the issue.

SQL Syntax

SELECT EXPORT_REPRODUCIBLE_SAMPLE(output_path, query_stmt [, ... ])
;

output_path ::=
   filepath

Parameters

Parameter Description
output_path Path for the output archive. The output file will be a tarball.
query_stmt [, ...] Statements to analyze.

Example

SELECT EXPORT_REPRODUCIBLE_SAMPLE('/home/rhendricks', 'SELECT * FROM t', $$SELECT "Name", "Team" FROM nba$$);

Collecting logs and metadata database

SQream DB comes bundled with a data collection utility and an SQL utility intended for collecting logs and additional information that can help SQream support drill down into possible issues.

See more information in the Collect logs from your cluster section of the logging guide.

Examples

Write an archive to /home/rhendricks, containing log files:

SELECT REPORT_COLLECTION('/home/rhendricks', 'log')
;

Write an archive to /home/rhendricks, containing log files and metadata database:

SELECT REPORT_COLLECTION('/home/rhendricks', 'db_and_log')
;

Using the command line utility:

$ ./bin/report_collection /home/rhendricks/sqream_storage /home/rhendricks db_and_log