You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

This is a page that we hope will help you file useful bug reports. This is always going to be work in progress, please make changes and additions as necessary.

Basic information

Before filing a new bug report, please spend a minute or two to see if there are already a bug filed identical or similar to your problem. You are also highly encouraged to reproduce and test your problem with the latest development release, or even better, a build from SVN trunk. With that said, here are a few bullets on information that each new bug should include:

  • Version of Traffic Server used
  • Platform (Linux, 64-bit, compilers used etc.)
  • Any relevant configuration changes you've made from the default configurations (particularly for records.config).
  • If possible, how to reproduce the bug.

Non crashing problems

For these types of bugs, where Traffic Server isn't behaving as you expect, it's vital that you document the following:

  • How to reproduce the behavior, this includes full client headers, server headers (from the origin) etc.
  • What the expected result should be.
  • What the actual result is from Traffic Server

Crashers

Crashers are difficult to debug, and some familiarity with the Gnu Debugger (gdb) is required to file any useful bug reports. We'll try to give a brief overview here how to do this, but you are encouraged to do some googling, and find some good on-line introductions to using gdb. The goal with GDB is two folded:

  1. Get a stack trace from the crash. This is done using the bt command in gdb.
  2. Collect information about parameter and other variables near the crasher. This is done using the print command in gdb.

Building Traffic Server for optimal debugging

The default build, aka a release build, of ATS has debug information, but it's also an optimized build. This makes it more difficult to debug using such a binary, because code gets reorganized, variables and parameters gets optimized out, and so on. For best debugging, you should build Traffic Server in a debug-build mode. For example:

$ ./configure --enable-debug
$ gmake

Setting up GDB

For best use of GDB, the following commands should be placed in your .gdbinit config, or done manually after you start gdb:

set pagination 0
handle SIGPIPE nopass nostop noprint

The second configuration is absolutely vital, or you will like see SIGPIPE errors in write() while debugging, and these are not "crashers" even though they look like it.

Starting Traffic Server directly in gdb

The easiest way to debug ATS is simply starting it directly under gdb. For example:

$ sudo gdb bin/traffic_server
...
Reading symbols from /usr/local/bin/traffic_server...done.
(gdb) run

This will start up traffic_server inside gdb. You might get warnings telling you to install more detaild

  • No labels