操作系统升级后,Python Libxml2 parseFile会间歇性地失败

时间:2014-05-09 18:37:15

标签: python libxml2

我们有一组遗留的python Web应用程序,这些应用程序已在Debian Lenny(生产)服务器上运行多年。我们最近克隆了该服务器并将该克隆升级为Wheezy。 Web应用程序在新服务器上大部分时间都可正常工作,但是对python libxml2.parseFile的调用偶尔也会异常,(阻止我们从Lenny框切换到Wheezy框)。

一些注释

  1. 重新启动apache后,parseFile失败不会立即开始。您必须开始使用Web应用程序,并在一段时间(几分钟或更长时间)之后开始发生parseFile故障。当它们开始发生时,重新启动apache似乎会暂时清除干扰parseFile能够访问/读取文件的任何内容。

  2. 失败似乎是在不同的Web应用程序和不同的页面上随机发生的(因此,不同的xsl文件)。它们不与一组特定的xsl文件隔离。

  3. 在我们的某个网络应用中点击时,当您访问某个页面并且parseFile失败时,如果您刷新该页面,则parseFile会正常工作并且页面呈现正确。

  4. 我们尝试使用lxml(2.3.2-1)而不是libxml2的标准python绑定,并且在调用etree.parse

  5. 时看到了同样的问题

    配置

    Web应用程序正在使用mod_python(不幸的是,现在它们不是真正的选项,可以将它们转换为使用mod_wsgi)。

    旧服务器

    - Debian Lenny 
    - Apache compiled with prefork 
    - mod_python 3.3.1 
    - python 2.5       
    - libxml2  (2.6.32.dfsg-5+lenny5) 
    - libxslt1.1 (1.1.24-2)  
    - python-libxml2    (2.6.32.dfsg-5+lenny5) 
    - python-libxslt1 (1.1.24-2) 
    

    新服务器

    - Debian Wheezy
    - Apache compiled with prefork
    - mod_python 3.3.1
    - python 2.7
    - libxml2  (2.8.0+dfsg1-7+nmu3)
    - libxslt1  (1.1.26-14.1)
    - python-libxml2  (2.8.0+dfsg1-7+nmu3)
    - python-libxslt1  (1.1.26-14.1)
    

    有关可能发生的事情的任何想法?在我看来,多线程问题不适用,因为apache是​​用MPM prefork编译的 - 这是正确的还是我错了?

    提前感谢您的帮助!

0 个答案:

没有答案