Copyright (C) 2000-2012 |
GNU Info (mysql.info)Bug reportsHow to Report Bugs or Problems .............................. Writing a good bug report takes patience, but doing it right the first time saves time for us and for you. A good bug report containing a full test case for the bug will make it very likely that we will fix it in the next release. This section will help you write your report correctly so that you don't waste your time doing things that may not help us much or at all. We encourage everyone to use the `mysqlbug' script to generate a bug report (or a report about any problem), if possible. `mysqlbug' can be found in the `scripts' directory in the source distribution, or, for a binary distribution, in the `bin' directory under your MySQL installation directory. If you are unable to use `mysqlbug', you should still include all the necessary information listed in this section. The `mysqlbug' script helps you generate a report by determining much of the following information automatically, but if something important is missing, please include it with your message! Please read this section carefully and make sure that all the information described here is included in your report. The normal place to report bugs and problems is <mysql@lists.mysql.com>. If you can make a test case that clearly demonstrates the bug, you should post it to the <bugs@lists.mysql.com> list. Note that on this list you should only post a full, repeatable bug report using the `mysqlbug' script. If you are running on Windows, you should include a description of the operating system and the MySQL version. Preferably, you should test the problem using the latest stable or development version of MySQL before posting! Anyone should be able to repeat the bug by just using "`mysql test < script'" on the included test case or run the shell or perl script that is included in the bug report. All bugs posted on the `bugs' list will be corrected or documented in the next MySQL release! If there are only small code changes involved to correct this problem, we will also post a patch that fixes the problem. Remember that it is possible to respond to a message containing too much information, but not to one containing too little. Often people omit facts because they think they know the cause of a problem and assume that some details don't matter. A good principle is: if you are in doubt about stating something, state it! It is a thousand times faster and less troublesome to write a couple of lines more in your report than to be forced to ask again and wait for the answer because you didn't include enough information the first time. The most common errors are that people don't indicate the version number of the MySQL distribution they are using, or don't indicate what platform they have MySQL installed on (including the platform version number). This is highly relevant information, and in 99 cases out of 100 the bug report is useless without it! Very often we get questions like, "Why doesn't this work for me?" then we find that the feature requested wasn't implemented in that MySQL version, or that a bug described in a report has been fixed already in newer MySQL versions. Sometimes the error is platform dependent; in such cases, it is next to impossible to fix anything without knowing the operating system and the version number of the platform. Remember also to provide information about your compiler, if it is related to the problem. Often people find bugs in compilers and think the problem is MySQL-related. Most compilers are under development all the time and become better version by version. To determine whether or not your problem depends on your compiler, we need to know what compiler is used. Note that every compiling problem should be regarded as a bug report and reported accordingly. It is most helpful when a good description of the problem is included in the bug report. That is, a good example of all the things you did that led to the problem and the problem itself exactly described. The best reports are those that include a full example showing how to reproduce the bug or problem. Note: Reproduceable test case. If a program produces an error message, it is very important to include the message in your report! If we try to search for something from the archives using programs, it is better that the error message reported exactly matches the one that the program produces. (Even the case should be observed!) You should never try to remember what the error message was; instead, copy and paste the entire message into your report! If you have a problem with MyODBC, you should try to generate a MyODBC trace file. Note: MyODBC bug report. Please remember that many of the people who will read your report will do so using an 80-column display. When generating reports or examples using the `mysql' command line tool, you should therefore use the `--vertical' option (or the `\G' statement terminator) for output that would exceed the available width for such a display (for example, with the `EXPLAIN SELECT' statement; see the example below). Please include the following information in your report: * The version number of the MySQL distribution you are using (for example, MySQL Version 3.22.22). You can find out which version you are running by executing `mysqladmin version'. `mysqladmin' can be found in the `bin' directory under your MySQL installation directory. * The manufacturer and model of the machine you are working on. * The operating system name and version. For most operating systems, you can get this information by executing the Unix command `uname -a'. * Sometimes the amount of memory (real and virtual) is relevant. If in doubt, include these values. * If you are using a source distribution of MySQL, the name and version number of the compiler used is needed. If you have a binary distribution, the distribution name is needed. * If the problem occurs during compilation, include the exact error message(s) and also a few lines of context around the offending code in the file where the error occurred. * If `mysqld' died, you should also report the query that crashed `mysqld'. You can usually find this out by running `mysqld' with logging enabled. Note: Using log files. * If any database table is related to the problem, include the output from `mysqldump --no-data db_name tbl_name1 tbl_name2 ...'. This is very easy to do and is a powerful way to get information about any table in a database that will help us create a situation matching the one you have. * For speed-related bugs or problems with `SELECT' statements, you should always include the output of `EXPLAIN SELECT ...', and at least the number of rows that the `SELECT' statement produces. The more information you give about your situation, the more likely it is that someone can help you! For example, the following is an example of a very good bug report (it should of course be posted with the `mysqlbug' script): Example run using the `mysql' command line tool (note the use of the `\G' statement terminator for statements whose output width would otherwise exceed that of an 80-column display device): mysql> SHOW VARIABLES; mysql> SHOW COLUMNS FROM ...\G <output from SHOW COLUMNS> mysql> EXPLAIN SELECT ...\G <output from EXPLAIN> mysql> FLUSH STATUS; mysql> SELECT ...; <A short version of the output from SELECT, including the time taken to run the query> mysql> SHOW STATUS; <output from SHOW STATUS> * If a bug or problem occurs while running *mysqld*, try to provide an input script that will reproduce the anomaly. This script should include any necessary source files. The more closely the script can reproduce your situation, the better. If you can make a repeatable test case, you should post this to <bugs@lists.mysql.com> for a high priority treatment! If you can't provide a script, you should at least include the output from `mysqladmin variables extended-status processlist' in your mail to provide some information of how your system is performing! * If you can't produce a test case in a few rows, or if the test table is too big to be mailed to the mailing list (more than 10 rows), you should dump your tables using `mysqldump' and create a `README' file that describes your problem. Create a compressed archive of your files using `tar' and `gzip' or `zip', and use `ftp' to transfer the archive to `ftp://support.mysql.com/pub/mysql/secret/'. Then send a short description of the problem to <bugs@lists.mysql.com>. * If you think that MySQL produces a strange result from a query, include not only the result, but also your opinion of what the result should be, and an account describing the basis for your opinion. * When giving an example of the problem, it's better to use the variable names, table names, etc., that exist in your actual situation than to come up with new names. The problem could be related to the name of a variable or table! These cases are rare, perhaps, but it is better to be safe than sorry. After all, it should be easier for you to provide an example that uses your actual situation, and it is by all means better for us. In case you have data you don't want to show to others, you can use `ftp' to transfer it to `ftp://support.mysql.com/pub/mysql/secret/'. If the data are really top secret and you don't want to show them even to us, then go ahead and provide an example using other names, but please regard this as the last choice. * Include all the options given to the relevant programs, if possible. For example, indicate the options that you use when you start the `mysqld' daemon and that you use to run any MySQL client programs. The options to programs like `mysqld' and `mysql', and to the `configure' script, are often keys to answers and are very relevant! It is never a bad idea to include them anyway! If you use any modules, such as Perl or PHP, please include the version number(s) of those as well. * If your question is related to the privilege system, please include the output of `mysqlaccess', the output of `mysqladmin reload', and all the error messages you get when trying to connect! When you test your privileges, you should first run `mysqlaccess'. After this, execute `mysqladmin reload version' and try to connect with the program that gives you trouble. `mysqlaccess' can be found in the `bin' directory under your MySQL installation directory. * If you have a patch for a bug, that is good, but don't assume the patch is all we need, or that we will use it, if you don't provide some necessary information, such as test cases showing the bug that your patch fixes. We might find problems with your patch or we might not understand it at all; if so, we can't use it. If we can't verify exactly what the patch is meant for, we won't use it. Test cases will help us here. Show that the patch will handle all the situations that may occur. If we find a borderline case (even a rare one) where the patch won't work, it may be useless. * Guesses about what the bug is, why it occurs, or what it depends on, are usually wrong. Even the MySQL team can't guess such things without first using a debugger to determine the real cause of a bug. * Indicate in your mail message that you have checked the reference manual and mail archive so others know that you have tried to solve the problem yourself. * If you get a `parse error', please check your syntax closely! If you can't find something wrong with it, it's extremely likely that your current version of MySQL doesn't support the query you are using. If you are using the current version and the manual at `http://www.mysql.com/documentation/manual.php' doesn't cover the syntax you are using, MySQL doesn't support your query. In this case, your only options are to implement the syntax yourself or e-mail <mysql-licensing@mysql.com> and ask for an offer to implement it! If the manual covers the syntax you are using, but you have an older version of MySQL, you should check the MySQL change history to see when the syntax was implemented. In this case, you have the option of upgrading to a newer version of MySQL. Note: News. * If you have a problem such that your data appears corrupt or you get errors when you access some particular table, you should first check and then try repairing your tables with `myisamchk' or `CHECK TABLE' and `REPAIR TABLE'. Note: MySQL Database Administration. * If you often get corrupted tables you should try to find out when and why this happens! In this case, the `mysql-data-directory/'hostname'.err' file may contain some information about what happened. Note: Error log. Please include any relevant information from this file in your bug report! Normally `mysqld' should *NEVER* crash a table if nothing killed it in the middle of an update! If you can find the cause of `mysqld' dying, it's much easier for us to provide you with a fix for the problem! Note: What is crashing. * If possible, download and install the most recent version of MySQL and check whether or not it solves your problem. All versions of MySQL are thoroughly tested and should work without problems! We believe in making everything as backward compatible as possible, and you should be able to switch MySQL versions in minutes! Note: Which version. If you are a support customer, please cross-post the bug report to <mysql-support@mysql.com> for higher priority treatment, as well as to the appropriate mailing list to see if someone else has experienced (and perhaps solved) the problem. For information on reporting bugs in *MyODBC*, see Note: ODBC Problems. For solutions to some common problems, see Note: Problems. When answers are sent to you individually and not to the mailing list, it is considered good etiquette to summarize the answers and send the summary to the mailing list so that others may have the benefit of responses you received that helped you solve your problem! automatically generated by info2www version 1.2.2.9 |