- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Python 创建了一项服务,该服务使用 pymssql
连接到 SQL Azure,并且仅进行 SELECT
查询。 1 天(或更长时间)后,连接在查询中开始失败,最后服务以错误结束:
Error in `python': free(): corrupted unsorted chunks: 0x0000000000ff2460
我不确定是否只有一个错误或多个错误(也许第一个错误会引发更多错误)。
连接代码在这里:
connectionDb = pymssql.connect(host=self.HOST_DATA_BASE, user=self.USER_DATA_BASE, password=self.PASSWORD_DATA_BASE, database=self.DATA_BASE_NAME)
我以下面的形式执行查询:
cursor=connectionDb.cursor()
cursor.execute("select * from vehicles")
rows = cursor.fetchall()
if (rows!=None):
return rows
最初,连接工作正常。一段时间不活动后会出现此问题。
我尝试简化查询,但我不认为这是错误的原因。
*也许pymssql
中可能存在错误?
最佳答案
好的,我能够验证这是 pymssql 中的内存问题。为此有一张公开的票。
我使用Python垃圾收集库(gc)来打印Python尚未释放多少内存。
下面是垃圾收集输出。正如您所看到的,“集合”继续增加,这意味着 pymssql 没有释放内存,即使它不再使用。
garbage collector output is [{'collections': 1822693, 'collected': 54744, 'uncollectable': 0}, {'collections': 165699, 'collected': 863905, 'uncollectable': 0}, {'collections': 4173, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1823867, 'collected': 54744, 'uncollectable': 0}, {'collections': 165806, 'collected': 863905, 'uncollectable': 0}, {'collections': 4176, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1825043, 'collected': 54744, 'uncollectable': 0}, {'collections': 165912, 'collected': 863905, 'uncollectable': 0}, {'collections': 4178, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1826218, 'collected': 54744, 'uncollectable': 0}, {'collections': 166019, 'collected': 863905, 'uncollectable': 0}, {'collections': 4180, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1827393, 'collected': 54744, 'uncollectable': 0}, {'collections': 166126, 'collected': 863905, 'uncollectable': 0}, {'collections': 4182, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1828567, 'collected': 54744, 'uncollectable': 0}, {'collections': 166233, 'collected': 863905, 'uncollectable': 0}, {'collections': 4185, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1829741, 'collected': 54744, 'uncollectable': 0}, {'collections': 166340, 'collected': 863905, 'uncollectable': 0}, {'collections': 4188, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1830917, 'collected': 54744, 'uncollectable': 0}, {'collections': 166446, 'collected': 863905, 'uncollectable': 0}, {'collections': 4190, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1832092, 'collected': 54744, 'uncollectable': 0}, {'collections': 166553, 'collected': 863905, 'uncollectable': 0}, {'collections': 4192, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1833267, 'collected': 54744, 'uncollectable': 0}, {'collections': 166660, 'collected': 863905, 'uncollectable': 0}, {'collections': 4194, 'collected': 359393, 'uncollectable': 0}]
garbage collector output is [{'collections': 1834441, 'collected': 54744, 'uncollectable': 0}, {'collections': 166767, 'collected': 863905, 'uncollectable': 0}, {'collections': 4197, 'collected': 359393, 'uncollectable': 0}]
free(): corrupted unsorted chunks
当我切换到 pyodbc 时,我运行了相同的代码并得到了以下结果:
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
garbage collector output is [{'collections': 218, 'collected': 806, 'uncollectable': 0}, {'collections': 19, 'collected': 115, 'uncollectable': 0}, {'collections': 1, 'collected': 5, 'uncollectable': 0}]
正如您所看到的,“集合”元素保持不变。这证明pymssql存在内存泄漏问题。我的建议是使用 pyodbc、pytds 或 ctds。我在github ticket上对此发表了观点。
关于python - "*** Error in ` python': free(): corrupted unsorted chunks: 0x0000000000ff2460 ***"in Python 的原因及解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39417641/
void *insert_rear_node(void *arg) { int *argument=(int *)arg; int value=*argument; //Assume
嘿,我的代码在执行后说“帐户”已损坏... 这是什么意思,我该如何解决? #include #include using namespace std; class BankAccount { pr
我正在使用 PHP 创建一个应用程序并涉及 MySQL。如果在请求过程中发生错误,我将如何“将查询分组在一起”,检查它是否会成功,然后对真实表进行实际影响。如果对表的实际更新失败,则恢复到更新之前的状
我正在尝试在 CentOs6 上使用 EasyBuild 编译 tensorflow,但 Bazel 捕获了错误的 binutils 目录,不幸的是,这是一个硬编码目录,以错误的汇编器结尾。 如果我尝
我正在尝试在 OS X Mavericks 上创建一个 AppleScript 库。我已将文件保存到 ~/Library/Script Libraries作为脚本包;它有一个正确的(据我所知;见下文)
我在 Eclipse Indigo 中开发 Android 项目已经有一年了,该 PC 已关闭更新且未安装任何新软件(故意避免 java 运行时或其他已安装软件出现任何不稳定)。 今天早上 Eclip
我正在开发一个简单的 React.JS 前端部分。 我本质上有一个用于历史数据的浏览 SPA。该设计有一堆过滤器,我需要一次填充一个过滤器,从逻辑层次结构中的顶部过滤器开始。 我做了类似的事情:
我已经搞乱了我的代码有一段时间了......现在当我运行它并在菜单中单击第二个选项时,当我输入超过 15 个字符的密码时,我收到此错误?谁能看到我做错了什么?这可能是一些我无法发现的小事谢谢 错误:
我有一个正在尝试构建的“单词”链接列表,我创建了一个名为“add_to_mem”的函数,它将下一个单词添加到链接列表中。我对代码进行了几次检查,发现他工作了两次 - 一次当链接列表为 NULL 时,一
我遇到了这个错误 *** Error in `./main': double free or corruption (out): 0x000000000095c8a0 *** getPieces()定
我的 jni 代码中有 malloc 问题。该代码旨在让我访问 java 中的 exiv2 库。我尝试使用 sun 和 openjdk 1.6.0 虚拟机以及 1.7.0(测试版)虚拟机破坏代码。 错
使用 visual studio 2013,我一直在尝试运行下面的代码,但是当变量 vertexPointer 达到数字 7172 时,我以某种方式收到“堆已损坏”异常。有时我会收到错误消息:“未加载
是否有一个约定俗成的errno代码表明指定的文件已损坏(它不符合应有的文件格式)? 我正在编写文件解析器,但不知道要返回的最合适的代码是什么。总是有 EINVAL,虽然我希望有比这更具体的东西,因为它
我的 date.php 是 -
这可能是个愚蠢的问题,但我在运行 *.jar 包时随机出现以下错误。有时程序运行完美,有时会中断,将其输出到控制台: *** Error in 'java': double free or corru
当运行脚本来筛选 抓取 网页时,我遇到“zend_mm_heap 已损坏”。请让我知道如何解决此问题。 最佳答案 我假设您正在使用带有 mod_php 的 Apache 来回答这个问题。 当 apac
我有将十六进制字符串转换为字节数组的函数, BYTE* HexStrToByteArray(std::wstring hex_str) { int len = hex_str.size()*0
请不要为了这个把我钉在十字架上。我决定使用 char* 可能更好,因为我打算构建的字符串的大小已知。我还知道,如果 timeinfo->tm_hour 返回的不是 2 位数字,那么事情就会变得很糟糕。
我有一个包含 vector 的类 (foo)。 如果我尝试像这样遍历 vector 中的元素: for(vector::iterator it = foo.getVector().begin();
每当我从我的 Remote 中 pull 出时,我都会收到以下关于压缩的错误。当我运行手动压缩时,我得到了相同的结果: $ git gc error: Could not read 381378312
我是一名优秀的程序员,十分优秀!