Руководство по отправке сообщений об ошибках

Если вы нашли ошибку в PostgreSQL, то мы тоже хотели бы знать о ней. Ваши сообщения об ошибках являются важными для того, чтобы сделать PostgreSQL более надёжным продуктом, потому что даже самая тщательная разработка и тестирование не гарантирует, что каждая часть PostgreSQL будет правильно работать на каждой из платформ, в каждом из возможных случаев.

Следующие советы предназначаются для того, чтобы помочь вам в формировании сообщения об ошибке, которое может быть обработано с максимальной эффективностью. Ни один из советов не требует, чтобы вы следовали ему, но каждый из них служит тому, чтобы помочь разбору ошибки.

Мы не можем обещать что устраним каждую ошибку. Если ошибка очевидна, критична или мешает многим пользователям, есть хороший шанс, что её увидят и исправят. Но также может случится, что мы предложим вам обновиться до самой свежей версии, чтобы увидеть существует ли ошибка в ней. Или мы можем принять решение, что данная ошибка не может быть исправлена без крупного исправления, которое мы планируем выполнить. Или возможно она просто слишком трудна и есть более важные вещи, которые нужно сделать. Если вам нужна помощь немедленно, подумайте над заключением договора о коммерческой поддержке.

Идентификация ошибок

Перед тем как написать сообщение об ошибке, пожалуйста прочтите и перепрочтите документацию, чтобы проверить, что это действительно ошибка и что вы действительно можете её сделать. Если в документации эта ошибка не описана или если согласно документации вы можете сделать её или не сделать, пожалуйста сообщите и об этом тоже; это означает ошибку в документации. Если программа делает что-то отличное от того, что говорит документация - это ошибка. Такая ошибка может включать, следующие (и не только) обстоятельства:

Здесь "программа" означает любой исполняемый файл, а не только backend-процесс.

Медленная работа или какие-либо недостатки в ресурсах не обязательно являются ошибкой. Прочтите документацию или задайте вопрос в одном из списков рассылки, чтобы получить помощь в настройке ваших приложений. Несовместимость со стандартом SQL также необязательно является ошибкой, если эта несовместимость согласуется со специальной возможностью, которая явно указана в документации.

Перед тем как продолжить, проверьте список TODO и FAQ, чтобы увидеть, известна ли уже обнаруженная вами ошибка. Если вы не можете понять информацию из списка TODO, сообщите о проблеме. Это, по крайней мере, позволит нам сделать список TODO лучше.

Что нужно сообщить

Наиболее важная вещь - помнить, что сообщение об ошибке должно описывать все факты и только факты. Не нужно расписывать ваши мысли по поводу того, почему вы думаете то или это не работает, или неправильно, что "это видимо надо делать так", или почему та, или иная часть программы ошибочна. Если вы в мельчайших подробностях не разбираетесь в реализации продукта, то вы можете быть неправы и нисколько не поможете нам. И даже если вы очень хорошо разбираетесь, то ваши разъяснения хотя и являются большим дополнением, но все-таки не заменят факты. Если вы хотите исправить эту ошибку, то мы сперва сами должны просто увидеть, что она происходит. Сообщение голых фактов является относительно правильным (вы можете например скопировать и вставить сообщения с экрана), но часто все очень важные детали оказываются опущенными, потому что кто-то посчитает их не имеющими значения. Кроме того сообщение об ошибке может быть понято как-то иначе.

В каждом сообщении об ошибке должны содержаться следующие элементы:

Не пугайтесь если ваше сообщение об ошибке будет довольно длинным. Это проза жизни. Гораздо лучше указать всю необходимую информацию сразу, чем нам потом выспрашивать факты у вас. С другой стороны, если ваши выходные файлы огромны, то сперва честно спросите себя: а будет ли кому-либо интересно что-либо в них искать. Здесь есть статья, в которой даётся больше советов о написании сообщений об ошибках.

Не тратьте всё своё время на описание того, какие изменения во входных данных приводят к устранению проблемы. Такое описание скорее всего не поможет её решить. Если оказывается, что ошибка не может быть сразу исправлена, вы можете найти и поделиться своим методом решения этой проблемы. Также, не тратьте ваше время на догадки, почему существует эта ошибка. Мы отыщем её довольно скоро.

Когда описываете ошибку, пожалуйста избегайте путаницы в терминологии. Программное обеспечение целиком называется "PostgreSQL", иногда для краткости "Postgres". Если вы говорите отдельно про backend-процессе, то не говорите, что "PostgreSQL падает". Нужно также отличать крах одиночного backend-процесса, от краха родительского процесса "postgres"; пожалуйста не говорите, что "сервер упал", когда имеете в виду одиночный backend-процесс и наоборот. Также, клиентские программы, такие как интерактивный frontend "psql" должны полностью отделяться от backend-сервера. Пожалуйста попытайтесь уточнить где же именно происходит проблема на стороне клиента или сервера.

Куда отправлять сообщения об ошибках

Обычно, сообщения об ошибках отправляют в список рассылки об ошибках . Вы должны использовать тему вашего письма с ярким описанием, например часть сообщения об ошибке.

Другой способ отправки - заполнить web-форму отчета об ошибке, которая доступна на веб сайте проекта. Ввод этой формы приведет к отправке вашего сообщения об ошибке в список рассылки .

Если ваше сообщение об ошибке содержит какие-либо сведения, которые связаны с секретностью и вы не хотите их появления в открытых архивах, не отправляйте их на pgsql-bugs. Секретные сведения могут быть направлены приватно на адрес .

Не отправляйте сообщения об ошибках в какие-либо пользовательские списки рассылки, такие как или . Эти списки рассылки предназначены для ответов на вопросы пользователей и их подписчики не хотели бы получть сообщения об ошибках. Что является более важным, они не смогут исправить эти ошибки.

Также, пожалуйста, не отправляйте сообщения об ошибках в список рассылки разработчиков . Этот список предназначен для обсуждения разработки PostgreSQL и будет гораздо красивее, если отчеты об ошибках будут помещаться в отдельный список. Мы можем решить открыть дискуссию по вашему сообщению об ошибке в списке pgsql-hackers, если эта проблема нуждается в более подробном рассмотрении.

Если у вас проблема с документацией, то лучшим местом, где о ней можно сообщить является список рассылки по документации . Пожалуйста, указывайте точно в какая части документации есть проблемы или ошибки.

Если ваша ошибка связана с проблемой переносимости на неподдерживамую платформу, отправляйте сообщение на , для того, чтобы мы (и вы) могли работать над переносом PostgreSQL на вашу платформу.

Note: Для того, чтобы избежать рассылки спама, все указанные выше адреса email являются закрытыми списками. Это значит, что вы должны быть подписаны на нужный вам список рассылки, чтобы отправить туда сообщение. (Однако, вам не нужно быть подписанным на список, если вы используете web-форму). Если вы хотите отправлять сообщения, но не хотите получать другие сообщения из списка, вы можете подписаться на список и установить опцию подписки в nomail. Чтобы получить более подробную информацию, отправьте письмо, в теле которого должна быть одно слово help на адрес ,