MS SQL 서버에 연결할 수 없을 때이 문제가 발생했습니다. 이로 인해 우리 프로그램의 버그가 발생하여 우리 프로그램이 눈부시게 멈추었습니다. 우리는이 문제를 해결할 수있었습니다. 사용자 Bob이 다운 된 데이터베이스에 연결을 시도하면 프로그램이 연결을 시도하는 동안 물론 기다릴 것입니다. Bob이 대기하는 동안이 시점에서 두 번째 사용자 인 Joe가 연결을 시도하면 대기하게됩니다. 잠시 후 Bob은 시간 초과되어 적절한 오류가 발생합니다. 그러나 Joe의 연결은 시간이 초과되고 세그멘테이션 오류가 발생하여 모든 것을 정지시킵니다.Segfault가 pymssql을 사용하여 여러 스레드에서 서버에 연결할 수없는 경우
우리는 안정적으로 첫 번째 스레드가 오류의 제기 후 segfault의 원인이됩니다 다음 코드
import threading
import datetime
import time
import pymssql
class ThreadClass(threading.Thread):
def run(self):
now = datetime.datetime.now()
print "%s connecting at time: %s" % (self.getName(), now)
conn = pymssql.connect(host="10.255.255.1", database='blah',
user="blah", password="pass")
for i in range(2):
t = ThreadClass()
t.start()
time.sleep(1)
이와 함께이 오류를 재현 할 수있었습니다. 이 segfault를 중지 할 수있는 방법이 있습니까, 오류를 올바르게 발생 시키거나 여기에 누락 된 것이 있습니까?
Pymssql 버전 1.0.2 및 Python 2.6.6.