【问题标题】:Getting Segmentation Fault with Simple Perl Program使用简单的 Perl 程序获取分段错误
【发布时间】:2013-04-17 04:32:15
【问题描述】:

我在营销计划中使用 Cory Watson 的 Chart::Clicker Perl 模块已有 3 年多,直到上周没有出现任何问题。

我将包含一个非常简单的代码示例。该程序在执行 write_output 命令时失败。我在实际程序中遇到了同样的问题。

实际程序根本没有被修改过。这个问题突然出现

#!/usr/local/bin/perl

use Chart::Clicker;

my $cc = Chart::Clicker->new;

my @values = (42, 25, 86, 23, 2, 19, 103, 12, 54, 9);
$cc->add_data('Sales', \@values);

$cc->write_output('/home/test/public_html/tmp/foo.png');

当我在我的服务器上运行此程序时,它会报告“分段错误”错误。如果我注释掉这行代码:

$cc->write_output('/home/test/public_html/tmp/foo.png');

没有报错。

对可能出现的问题有任何想法吗?谢谢。

【问题讨论】:

  • 权限有变化吗?检查文件/home/test/public_html/tmp/foo.png和父目录的权限。
  • 服务器上是否存在此路径?
  • 服务器上还有什么升级吗? Chart::Clicker 的文档提到了 CentOS 和 Cairo 的问题。您可能需要检查您是否拥有正确版本的 Cairo。另外,请考虑联系模块的作者。
  • 我也觉得可能是权限问题,所以暂时把tmp文件夹设置为777。不开心。服务器上确实存在该路径。
  • Chart::Clicker 确实有许多依赖项,Cairo 就是其中之一。 Cairo 是一个二维向量库。我在 RHEL5 上运行。 Chart::Clicker 在 RHEL 上是出了名的难以配置。

标签: perl segmentation-fault


【解决方案1】:

感谢所有提供帮助的人。

我们最终在服务器上重新安装了 Perl(它是一个专用的、完全托管的服务器 - 主机选择这样做是因为 CPanel 上的 Perl 模块安装程序没有正确响应)。这样做之后,test.cgi 报告了各种与 Chart::Clicker 相关的新编译错误。

我们重新安装了几个 Chart::Clicker 依赖项,这解决了问题。

【讨论】:

  • 一些附加信息。我和我们的主人一起追寻根本原因。他的评论如下:“我 100% 确定今年的问题在于 cPanel 更新。他们从使用自定义编译的 Perl 5.8.8 版本切换到使用 RHEL 附带的 perl。这破坏了各种模块在过去的几周内跨越了多个客户端系统。”
猜你喜欢
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
相关资源
最近更新 更多