2010-07-09 90 views
2

可以使用一些幫助。我完全陷入困境,一直試圖解決這個問題整整一週。我有一個充當電子郵件服務器的perl腳本。在設置了1,020個SSL套接字之後,每次在每個套接字之前工作正常,它就開始失敗。有什麼建議麼?爲什麼它說不好的主機名?創建SSL套接字的Perl在1020套接字後出現「Bad hostname」失敗

我得到的錯誤是
設置用戶1014 ...完成!
設置用戶1015 ...完成!
設置用戶1016 ...完成!
設置用戶1017 ...完成!
設置用戶1018 ...完成!
設置用戶1019 ...完成!
設置用戶1020 ...錯誤:new_imap:socket():IO :: Socket :: SSL:Bad hostname'imap.gmail.com'
嘗試2:錯誤:new_imap:socket():IO ::插座:: SSL:主機名錯誤「imap.gmail.com」

如果我在IO ::插座:: SSL打開調試,它吐出來隨着這一串數字,
SSL.pm: 1201:IO :: Socket :: INET配置failederror:00000000:lib(0):func(0):reason(0)

+1

你有1000個套接字同時運行?你不能使用Windows。 – mob 2010-07-09 20:08:53

回答

4

聽起來好像你可能用完了文件描述符。你是否同時打開所有這些插座?或者如果你正在關閉他們,也許你的SO_LINGER設置 正在讓他們堅持更長的時間比你想?

根據您的平臺,您可以配置它以增加每個進程可用的文件描述符的數量 。

+0

哇,完美。很好的答案。這個社區岩石。我會嘗試增加文件描述符的上限,看看是否修復它 – casey 2010-07-09 19:57:35

+0

是的,使用BSD :: Resource在腳本啓動時增加nofiles限制,現在可以通過1,020現在 – casey 2010-07-14 19:03:19

+0

@casey:很高興聽到它解決了! – 2010-07-14 20:26:12