6. 問題匯報指導

當你在 PostgreSQL 裡碰到臭虫時, 我們也希望能聽到它。你的臭虫匯報是將 PostgreSQL 做得更加 可靠的一個非常重要的部分, 因為再細致的工作也不能保証在任何情況任何平台下 PostgreSQL的每一個部分都能正常工作。

下面的建議試圖幫助你正確格式化臭虫報告, 這樣這些報告就能夠以一種有效的方法處理。我們不強迫任何人 遵循這些東西,但是這樣做對我們每個人都有好處。

我們不能保証能夠馬上修補每個臭虫。如果臭虫是顯而易見的, 很關鍵的或者影響許多使用者,那麼很有可能有 些人會認真檢查它們。同樣我們也可能是告訴你升級到一個新版本, 看看臭虫是否仍然存在。否則,我們可能 會說這個臭虫在我們正計劃的幾個主要改寫之前不會得到修補。 或者這個臭虫只是太費事了,而且目前的日程 表上有更重要的事情要做。如果你立即需要幫助, 那麼請考慮獲取一個商業性的支援。

6.1. 標識臭虫

在你報告臭虫之前這樣的問題之前,請一再仔細地讀文件, 以確認你確實可以做你在做的事情。如果 文件中對你能否處理你所做的事情並不清楚,也請你匯報過來﹔ 因為這個是文件的臭虫。如果發現你的程式的 表現不象文件裡說的那樣,那就是一個臭虫。 這時可能包括(不過不一定局限於)下面的現象:

這裡的 "程式" 代表任何可執行文件,而不僅僅是後端伺服器。

速度慢或者資源消耗大不算是臭虫。 請閱讀文件或者提交郵件清單之一獲取調節你的應用(的性能)的幫助。 未能遵循 SQL 標準也不算是一個臭虫, 除非(文件)明確宣告了遵守該特定特性。

在你準備繼續匯報臭虫之前,請檢查 TODO 清單和 FAQ, 看看你報告的臭虫是否已知。如果你不能解析 TODO 清單裡面的資訊,請匯報你的問題。 至少我們可以把 TODO 清單做得更清晰。

6.2. 匯報什麼

關於匯報臭虫需要記住的最重要的事就是寫出所有事實並且只寫事實。 不要推測你認為是什麼錯了,什麼"看起 來象",或者是推測程式的哪一部分失靈了。 如果你不熟悉 PostgreSQL 的實現, 你很可能猜錯因而不能幫我們任何忙。 而且即使你熟悉 Postgres 的實現, 提煉出來的解釋也只是事實的補充而不是代替。如果我們準備修理這個 臭虫,我們仍然需要首先親自看到臭虫的出現。 報告簡單的事實相對而言比較直接(你可以從螢幕上拷貝和粘 貼),不過經常發生的是很多人認為這些事實不重要而忽略了重要的細節, 否則匯報總是能夠被我們理解。

下面的條目應該包含在所有臭虫匯報裡面:

不要怕你的臭虫匯報太長。這就是生活。 一開始就匯報所有的事情要比讓我們從你那裡擠出事實要好。另外, 如果你的輸入文件非常巨大,先問問有沒有人有興趣查看它也是合理的。

不要把你的時間花在尋找如何通過修改輸入來消除問題的方法上。 這樣很可能不會對解決問題有任何幫助。 如果發現不能直接修理臭虫,你還有時間來尋找和共享你的繞過方法。 還有,我們再說一便,不要在猜測臭虫 的位置上面浪費時間。我們能夠及時找到錯誤。

在你書寫臭虫匯報時,請選用不易混淆的術語。 軟體包本身被稱為"PostgreSQL",有時簡稱為 "Postgres"。 (有些時候用縮寫 "Pgsql",但是請不要這麼使用。) 當你特指後端伺服器時, 請明確說明,而不要僅僅是說"PostgreSQL 崩潰了"。 一個獨立後端伺服器程序的崩潰和父程序 "postmaster" 崩潰 是相當不同的﹔如果你是說獨立後端崩潰了,那麼請不要說 "postmaster 崩潰",反之亦然.同樣,客戶端程式, 比如交談式前端 "psql" 是和後端完全獨立的. 請試圖說明清楚問題是出現再客戶端還是伺服器端.

6.3. 到哪裡匯報臭虫

通常,把匯報發到 臭虫匯報郵件清單 。我們要求你為你的電幾郵件訊息選用一個描述性的題目, 也許就用錯誤資訊的一部分。

另外一個方法是填充 web 表單形式的臭虫報告,你可以再項目的 web 站台 http://www.postgresql.org/ 找到. 用這種方法輸入一個臭虫報告會導致它被發送到 郵遞清單.

不要把臭虫匯報發送到任何使用者郵件清單裡,例如 SQL 語言郵件清單 或 通用話題郵件清單 。這些郵件清單用於回答使用者問題, 而且那些訂閱者通常不希望接收臭虫匯報。 更重要的是,他們很可能不會修理這些臭虫。

還有,請不要向 開發者郵件清單 發送臭虫匯報。這個清單用於討論 PostgreSQL 的開發, 因而我們很希望能和臭虫匯報分離開。 如果修理某個毛病需要更多評論, 我們可能會在這個pgsql-hackers清單開一個關於你的臭虫的討論會。

如果你覺得文件有問題,請發電幾郵件到 文件郵件清單 . 在你的問題匯報裡面指明你認為哪部分.

如果你的臭虫是一個在不支援平台上的移植性問題,向 移植性問題郵件清單 , 發送電幾郵件,這樣我們(還有你)可以一起嘗試把 PostgreSQL 移植到你的平台上。

注意: 由於我們不愿意看到的各種各樣的垃圾郵件, 上面的所有電幾郵件位址都是封閉的郵件位址。 也就是說,你需要先申請,然後才能發帖幾。 (不過,你用 web 表單提交臭虫報告的時候用不著申請.) 如果你只是想發送郵件而不想接受清單的往來的郵件, 你可以提交郵件並且把你的提交選項設定為nomail. 如果需要更多的資訊, 你可以向 發送一封郵件,郵件的正文只有一個單詞help 就可以了.