byr*_*ron 6 python pylons paste paster
所以我对Pylons中的文件上传有一个相当棘手的问题,我希望有人可以帮助我.最初我在这里发布了这个问题,认为这是Pylons的一个问题,但我已经得出结论,问题是由服务器引起的,即粘贴,我已经确切地追踪了问题发生的地方,但我不确定如何解决它.行为如下.我有一个Pylons网络应用程序,我通过贴纸服务.应用程序的一部分允许用户将文件上传到系统,有时这些文件可能相当大(> 50mb).在上传过程中,服务器偶尔会重置连接(例如,在Chrome中,错误显示为"错误101(net :: ERR_CONNECTION_RESET):连接已重置.".)这并不总是发生,只有约50%的时间更大的文件.
在这些情况下,服务器永远不会将POST交给应用程序级别.没有抛出异常(至少,我能找到).我已将问题缩小到cascade.py(特别是从httpserver.py调用的wsgi_application方法).从后者:
result = self.server.wsgi_application(self.wsgi_environ,self.wsgi_start_response)
在cascade.py 的调用函数中,该文件似乎被写入临时文件.相关循环开始于:
而copy_len> 0:
然后它将块一个一个地写入打开的文件.这些写入都不会引发异常.但是,服务器通常只是在这些写入期间"消失",似乎是随机的(时间似乎与此无关).因此,如果我打印出正在递减的copy_len大小,我会看到它减少到一个点,然后服务器突然发送'连接重置'(或者至少客户认为它)和方法似乎已退出(copy_len不再打印,好像循环已退出,但不是0).
我完全难倒,因为1)这只是偶尔发生,2)我似乎无法追查实际的错误/异常 - 它只是......死了.
如果重要的话,我正在运行paste 1.7.3,Python 2.7和Fedora OS.有没有人对可能发生的事情有任何了解,以及我如何能够解决这个问题?非常感谢您的帮助.