Perl Net :: SSH2与线程崩溃

卡姆鲁尔汗

我有下面的代码。我的问题是它随机崩溃,并出现以下错误:

perl: ath.c:193: _gcry_ath_mutex_lock: Assertion `*lock == ((ath_mutex_t) 0)' failed.

就像我将代码运行10次一样,它会崩溃2-3次。如何解决?

use warnings;
use strict;
use Net::SSH2;
use threads;

sub gsmExec {
    $host = $_[0];
    $port = $_[1];
    $user = $_[2];
    $pass = $_[3];
    my $modem = Net::SSH2->new();
    print "Trying to connect host $host : $port \n";
    if($modem->connect($host,$port)) {
        print "connected to host ..\n";

        if ($modem->auth_password($user,$password) {
            print "Authorized!!";
        }
    }
}

for(my $j = 1; $j <= $modemCount; $j++){
        $thrList[$j] = threads->create(\&gsmExec,'host',22,'user','pass');
}
清醒

那里不是真正的perl错误-Net::SSH库中包含一些C代码

有迹象表明您不是唯一遇到此问题的人:

http://www.perlmonks.org/?node_id=936201

http://lists.gnupg.org/pipermail/gcrypt-devel/2006-January/000910.html

看来GnuTLS中可能存在一个错误,这使其不是线程安全的。解决方法是:

  • 单线程的“ TLS”位。
  • 使用fork而不是线程。Parallel::ForkManager对此非常好)。
  • Net::OpenSSH::Parallel 可能也可以解决问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在redhat / centos 7上安装perl模块Net:SSH2

来自分类Dev

Perl Net :: SSH :: Any with Key Exchange

来自分类Dev

Perl Net :: SSH :: Any with Key Exchange

来自分类Dev

无法使用Net :: SSH:Perl登录

来自分类Dev

如何在Cygwin上从CPAN安装Net :: SSH2

来自分类Dev

无法从crontab运行perl脚本以ssh登录Windows服务器(使用Net :: SSH :: Perl)

来自分类Dev

在 perl 模块“Net::SSH::Expect”中找不到 connect() 方法

来自分类Dev

Net :: SSH2 :: Simple在更新到Windows10后失败

来自分类Dev

阻止NET :: SSH2打印不需要的数据

来自分类Dev

phpseclib NET/SSH2 从帖子表单中提取变量

来自分类Dev

Perl - /usr/local/lib64/perl5/Net/SSH2.pm 中散列分配中的奇数元素

来自分类Dev

Perl Net :: Server热部署

来自分类Dev

perl 多线程 perl 以活动线程退出

来自分类Dev

Net :: SSH :: Perl给出错误消息味精找不到匹配的密码

来自分类Dev

Net :: SSH :: Perl给出错误消息味精找不到匹配的密码

来自分类Dev

Perl恢复线程

来自分类Dev

Perl:从并行线程派生

来自分类Dev

Perl线程递增变量

来自分类Dev

使用Perl和Net :: OAuth2将POST事件传输到Google日历

来自分类Dev

Perl ssh密码

来自分类Dev

使用Net :: HTTP在Perl中发送POST

来自分类Dev

PERL Net :: DNS输出到文件

来自分类Dev

与net :: sip的perl ssl tls连接

来自分类Dev

Perl Net :: Telnet检索单行输出

来自分类Dev

使用Perl的Net :: SSLeay获取整个证书

来自分类Dev

在Ubuntu上安装perl net :: pcap

来自分类Dev

Perl Net :: Telnet :: Cisco错误的命名参数

来自分类Dev

Perl线程杀死超时线程

来自分类Dev

Perl线程-共享哈希参考