問題匯報指導

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

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

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

標識臭蟲

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

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

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

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

匯報什麼

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

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

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

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

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

到哪裡匯報臭蟲

通常,把匯報發到 臭蟲匯報郵件列表。 我們要求你為你的電子郵件消息選用一個描述性的題目, 也許就用錯誤信息的一部分。

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

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

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

如果你覺得文檔有問題,請發電子郵件到文檔郵件列表 . 在你的問題匯報裡面指明你認為哪部分。

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

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