9.1. Внутреннее устройство MySQL
9.1.2. Пакет тестирования MySQL
9.1.2.3. Отчет об ошибках в тестовом пакете MySQL
Если используемая версия MySQL не проходит через тестовый пакет, следует поступать следующим образом:
Прежде всего, не отсылайте отчет об ошибке, пока не соберете максимального количества сведений по проблеме, с которой вы столкнулись! Большая просьба к вам - используйте для этого сценарий mysqlbug, чтобы мы имели возможность получить как можно больше информации о вашей системе и версии MySQL (see Раздел 1.8.1.3, «Как отправлять отчеты об ошибках или проблемах»).
Проследите за тем, чтобы в отчет был включен вывод mysql-test-run, а также содержимое всех файлов .reject из каталога mysql-test/r.
Если тест из тестового пакета терпит неудачу, проверьте, будет ли он также неуспешным при выполнении его самого по себе:
cd mysql-test
mysql-test-run --local test-name
Если тест не проходит, то следует сконфигурировать MySQL с --with-debug и запустить mysql-test-run с опцией --debug. Если он не пройдет и в этом случае, следует положить трассировочный файл var/tmp/master.trace на ftp://support.mysql.com/pub/mysql/secret, чтобы мы могли его изучить. Пожалуйста, не забудьте также включить полное описание используемой системы, версию исполняемого файла mysqld и описание того, как он был скомпилирован.
Попробуйте также выполнить mysql-test-run с опцией --force, чтобы выяснить, есть ли еще тесты, которые система не проходит.
Если вы компилировали MySQL собственноручно, сверьтесь с нашим руководством в той его части, где дается описание компиляции MySQL на используемой платформе или (что более предпочтительно) используйте одну из откомпилированных нами для вас бинарных поставок http://www.mysql.com/downloads/. Все наши стандартные бинарные дистрибутивы должны проходить тестовый пакет!
Если получена ошибка, подобная Result length mismatch или Result content mismatch, то это означает, что нет точного совпадения между выходными данными теста и контрольными выходными данными. Это может говорить об ошибке в MySQL или о том, что при некоторых обстоятельствах используемая версия mysqld выдает слегка отличающиеся результаты. Результаты неудачных тестов помещаются в файл с тем же именем, что и у файла результатов, но с расширением .reject. Если контрольный тест терпит неудачу, то по этим двум файлам следует выполнить diff. Если не удается обнаружить, в чем их отличия, исследуйте оба файла с помощью od -c, а также проверьте их размеры.
Если тест полностью потерпел фиаско, то для выяснения причины неполадок следует обратиться к файлам журналов в каталоге mysql-test/var/log.
Если MySQL был скомпилирован в отладочном режиме, то можно попробовать выполнить отладку, запустив mysql-test-run с опциями --gdb и/или -debug (see Раздел E.1.2, «Создание трассировочных файлов»). Если MySQL не был скомпилирован для отладки, то это стоит сделать - просто задайте опции --with-debug для configure! Обращайтесь к разделу See Раздел 2.3, «Установка исходного дистрибутива MySQL».