2012-03-05 68 views
0

在Heroku Cedar上使用Postgres時,當我嘗試使用OpenSSL驗證公鑰時,與數據庫的連接丟失。Heroku上的OpenSSL - 數據庫連接丟失

# Recreate the error using a Base64 encoded key (BASE64_KEY below) you can go into the console and do the following: 

decoded_key = Base64.decode64(BASE64_KEY) 
public_key = OpenSSL::PKey::RSA.new(decoded_key) 
public_key.verify(OpenSSL::Digest::SHA1.new, "", "") 

# Database connection is lost when this fails. 

當驗證通過時,所有東西都是hunky dory。我似乎無法在開發中複製這種行爲。

任何想法爲什麼會發生?更好的是,是否有解決方法?

回答

0

對於任何人來說,我最終通過線程驗證過程和讀取線程結果。這樣主線程的數據庫連接就不會丟失。

幾乎不理想,但它的工作原理!

+0

我們已經跌進這個完全一樣的問題,並已採取了我們一個星期要認識到這是這一點,導致數據庫連接的損失。你有沒有進一步瞭解事業/解決方案,還是隻是放下工作? – Fringley 2013-10-09 14:28:38

+0

完成後將它留在Fringley。大量的支持,最後他們的結論是「是的,OpenSSL是個婊子!」。 在說,我從來沒有任何問題的解決方法。您需要注意內存泄漏,但對我們來說這絕對不是問題,我們通過這種方式維護了數十萬個身份驗證。 – 2013-10-09 15:31:32

+0

是的,我們也有同樣的分辨率不足。我剛剛設法修復它!我們運行獨角獸,並使用Heroku推薦的獨角獸文件,該文件位於文件底部,它有一些代碼用於處理重新連接線程服務器上的數據庫。我將這段代碼複製到我們的方法中,然後使用SSL代碼,並且它很快就起作用 - 它可以工作!這裏是文章:https://devcenter.heroku.com/articles/concurrency-and-database-connections – Fringley 2013-10-09 15:49:50