ServerLucidApportHooks

  • Launchpad Entry: server-lucid-apport-hooks

  • Created: 2009-11-23

  • Contributors: ChuckShort

  • Packages affected: samba, openssh, php5, dhcp3-server, dhcp3-client, ntp, apache, bind, bacula, openldap, eucalyptus, euca2ools, vmbuilder, rsyslog

Summary

Add Apport for high bug count server related packages. This include samba, openssh, eucalyptus, php5, dhcp3 (server/client), vmbuilder, and ntp.

Rationale

In order to improve the quality of bug reports, we are going to include apport hooks on selected server related packages. The packages that were selected have high usage and have lots of bug open for them in launchpad.

User stories

  • Jonah has opened a bug report for samba in Launchpad. However it does not contain enough information, Bob has
    • asked Jonah to run apport-collect to get more information.
  • Bubba has reported a bug in samba, Kenny as a bug triager opens a bug in the samba bug tracker
    • with all the required information.

Assumptions

User will have apport installed on their server.

Design

Samba

  • include /etc/samba/smb.conf (scrubbing any sensitive data)
  • include output of testparam.
  • include net user share configuration.
  • The contents of /var/log/samba (recent logs only)
  • Cifs info (/proc/fs/cifs/DebugData).
  • Add an interactive hook which implements the decision tree in DebuggingSamba

OpenSSH

  • include /etc/ssh/sshd_config
  • Selected output from /var/log/auth.log (if it has information)

PHP

  • include php.ini
  • Modules which are loaded.

DHCP3

  • Seperate client and server hooks.
  • include configuration files
  • include client lease files (IP address information stripped out)
  • Recent syslog (with IP address information stripped out)

ntp

  • NTP configuration files
  • Recent syslog entries
  • Drift file

Apache

  • Apache configuration files
  • everything in /etc/apache2/modules-*
  • httpd.conf (if modified)
  • lines in error log with no '[client]' content

bind

  • named.conf
  • recent syslog daemon log

bacula

  • configuration files
  • is the backend running (postgres/mysql/sqllite)

opendlap

  • /etc/ldap/slapd.d (without credentials)
  • /var/log/daemon.log

eucalyptus

  • eucalyptus.conf eucalyptus-cc.conf
  • log files
  • attach related packages
  • on the CC: iptables -nL ( -t nat), ip route show

euca2ools

  • command line options
  • python oops

vmbuilder

  • command line options
  • python options

rsyslog

  • configuration files
  • Related log files.

Code Changes

The debian packages will be changed to include the apport hooks for the server packages.

Test/demo plan

  1. Use APPORT_STAGING=1 ubuntu-bug <package> to report a test bug to staging.launchpad.net without cluttering production LP with test bugs

  2. Confirm that the test bug includes the appropriate fields and attachments as specified here

Dump of notes from Gobby

In order for users to provide quality bug reports in launchpad and eventually upstream needed. Select server packages should have apport hooks be included that provide information that is need for quality bug reports. Packages that should be selected for this are:

   1. Samba
     * smb.conf (credentials?)
     * output of testparam
     * net user share configuration
     * /var/log/samba/ (when stuff is there)
     * remote cifs info : /proc/fs/cifs/DebugData
     * https://wiki.ubuntu.com/DebuggingSamba
     * hook samba panic script to trigger apport report
   6. Apache
     * list which modules loaded (traverse includes)
     * everything in /etc/apache2/modules-*
     * httpd.conf (if modified) -- modified conf files
     * lines in error log with no '[client]' content
   4. DHCP3
     * separate client and server hooks
     * configuration files
     * lease files (for the client)
     * recent syslog file
   * openldap
     * /etc/ldap/slapd.d/ (credentials)
     * /var/log/daemon.log
     * https://wiki.ubuntu.com/DebuggingOpenldap
   2. openssh
     * sshd_config file
     * log files (not auth.log)
   3. php5
     * installed modules
   * Eucalyptus
      * currently eucalyptus.conf eucalyptus-cc.conf, log files.
      * attach-related-packages
      * on the CC: iptables -nL (-t nat), ip route show
     * euca2ools
      * stacktrace
   9. Postfix
      * postconf output
      * /var/log/mail.info      
   * vmbuilder
      * command line options
   5. ntp
      * /var/log//daemon
      * config files
      * recent syslog
      * conf files (use existing function)
      * drift file
   7. bind
      * name.conf
      * syslog daemon log
   * backuppc (but likely leaving main)
   8. bacula
     
     * is the backend database running (postgres or mysql)?
   * rsyslog:
    * configuration files/directories
    
Agenda:

 * Discuss why we need it
 * packages that are targeted
 * Brainstorm what should packages and what should be included in the bug reports

Things to collect:
 * erlang crash log
 * attach_conffiles (to get modified config files)
 * logfiles trimmed to only relevant files (recent_syslog)
 * modules loaded (

== Server team packages sorted by number of open bugs ==

 * samba          151
 * mysql-dfsg-5.0         81
 * openssh        76
 * eucalyptus     63
 * php5   59
 * libvirt        57
 * dhcp3          50
 * vm-builder     49
 * ntp    35
 * apache2        34
 * qemu-kvm       31
 * openldap       31
 * mysql-dfsg-5.1         26
 * kvm    23
 * bind9          21
 * autofs         18
 * backuppc       17
 * bacula         16
 * postfix        15
 * libnss-ldap    15
 * likewise-open          13
 * dovecot        13
 * nmap   12
 * nis    12
 * mailman        12
 * lm-sensors     10

Priority list

 1. Samba
 2. Openssh
 3. eucalyptus ( update)
 4. php5
 5. dhcp3
 6. vmbuilder
 7. ntp


== Notes ==
 * generalize attach log to support custom log files, and search for specific patterns (ex:  mysqld messages in /var/log/daemon.log)
 * Look at the samba panic script


CategorySpec

ServerLucidApportHooks (last edited 2009-11-30 11:08:33 by mdz)