【问题标题】:sqlalchemy apache mod_wsgi crash with pyramidsqlalchemy apache mod_wsgi 与金字塔崩溃
【发布时间】:2014-01-15 13:43:03
【问题描述】:

我正在使用 apache mod_Wsgi 运行一个基本的 Pyramid 应用程序。我的应用程序设置似乎没问题,因为我可以在 Apache 下访问 home Pyramid 模板。

只要我向这个应用程序发出请求,apache 进程就会崩溃,并出现“脚本头过早结束 - 分段错误”。这就是 sqlalchemy 代码查找请求的方式。 (我已将此代码添加到 _views._py 本身,因为我试图在不使用模型的情况下创建 RESTful 框架。)

try:
            print >> sys.stderr, 'entering sql execute'
            value=session.execute(s)
            for row in value:
                    listofclients.append(row[0])
            return listofclients
            session.close()
    except exc.SQLAlchemyError, exc:
            print >> sys.stderr, exc.message

我可以在 apache 错误日志中看到“正在输入 sql 执行”。之后该进程立即崩溃。注释掉执行语句并返回示例值有效。 在金字塔提供的 pserve 下运行这个应用程序就像一个魅力。

任何帮助为什么 Apache 不喜欢执行语句? 如果您需要任何其他信息,请告诉我。

【问题讨论】:

    标签: python apache sqlalchemy mod-wsgi pyramid


    【解决方案1】:

    【讨论】:

    • 国外图书馆没问题。 wiki 上提到的测试通过了。 WSGIApplicationGroup 指令设置为 %{GLOBAL},我可以从请求标头中验证应用程序设置为“”。在 gdb 跟踪中真的看不到任何异常。我尝试直接使用 cx_Oracle.connect 并再次因段错误而失败。 Threading=true 也没有帮助。 Cx_oracle 似乎是罪魁祸首,但真的不知道要检查什么。
    • 进一步检查 gdb 在发生崩溃时显示以下消息 - ORA-24550: signal received: [si_signo=11] [si_errno=0] [si_code=1] [si_int=-522379924] [ si_ptr=0x7fffe0dd1d6c] [si_addr=(nil)] 到目前为止,谷歌上没有任何帮助。
    【解决方案2】:

    按照 Graham 的建议并仔细检查了崩溃进程的 GDB 回溯,结果发现有一个 ldap 模块干扰了 cx_Oracle 连接字符串。 ldap_search_str() 是罪魁祸首。

    禁用 ldap 模块解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2015-07-10
      • 2014-06-18
      • 1970-01-01
      • 2013-11-23
      • 2016-07-21
      • 2014-04-20
      • 2013-06-24
      • 1970-01-01
      • 2015-09-21
      相关资源
      最近更新 更多