Tools of a Support Engineer

So, you’ve emailed MySQL Support, they’re working on the problem you’re having. How are they working? What tools do they use? Well, here’s my list:

  • IRC – All MySQL Support Engineers work on IRC, it’s our main communication medium. While you’re only getting emails from one Engineer, it’s quite likely they’re consulting with several others at the same time. Many pairs of eyes catch all of the details.
  • MySQL Docs, Changelogs, Knowledge Base, Google, etc – There’s a lot of information out there, far too much for any one person to keep in their head at once. So, we have extensive documentation that everyone can access, plus the Knowledge Base available to customers. Also, given that MySQL is a very open project, we have plenty of community members who write about their experiences.
  • MySQL Sandbox (Link) – If you’re having a problem with a specific version of MySQL, we need to be able to reproduce it. Sandbox is by far the easiest way to create, modify and maintain test environments.
  • Virtual Machines – Similarly, if you’re having a problem with a specific OS, we can usually reproduce it in a VM. I prefer VirtualBox for this, though there are many options.
  • gdb – Crashes often mean core files, and gdb makes them easy to debug. Remember that if you do want to do your own debugging in gdb, you will need a copy of the mysqld binary that generated the core file.
  • Test Servers – We also have a big ol’ pile of servers we use for testing various setups, if it is required.

And that’s about it. Personally, I like to keep my environment simple but flexible.

4 thoughts on “Tools of a Support Engineer”

  1. I’m not convinced that “big ol’ pile” is the collective noun of server.

    Anyway, interesting post. How does gdb help? I was under the impression it had to be running to capture a crash, but I’m no pro.

    1. You can set MySQL to generate a core file when it crashes, which contains the entire state of the server at the time of the crash. You need to add these lines to your my.cnf:

      [mysqld]
      core-file
      
      [mysqld_safe]
      core_file_size = unlimited

      Then, when the crash occurs, gdb can read the core file so you can analyse what MySQL was doing when it crashed.

Leave a Reply