AppliedBioinformatics / runBNG

An easy way to run BioNano genomic analysis
MIT License
27 stars 7 forks source link

segmentation fault with hybridScaffold.pl #10

Closed JennyHTLee closed 3 years ago

JennyHTLee commented 6 years ago

Hi Andy,

This is not a runBNG issue but a hybridScaffold.pl issue, just wondering if you've experienced it before: I get "Segmentation fault" whenever I run "runBNG hybrid", and the cause is hybridScaffold.pl, with perl 5.10.0, 5.14.4 and 5.16.0. It seems to be related to the PerlIO::Util module (and more?)

Let me know if you have suggestions, I am going to post in the bionano forum too.

Cheers, Jenny

yyx8671 commented 6 years ago

Hi Jenny,

I saw this kind of error before and I think it is related to the Perl version you used. Which Perl version did you use? I tested with v5.10.0 and v5.14.4 and all worked for me.

Cheers, Andy

JennyHTLee commented 6 years ago

Thanks Andy,

I got it working,

So previously I tried 5.10.0, 5.14.4 and 5.16.0, all with my own installations. The error is very likely due to conflict between perl modules, as HybridScaffold also uses it's own lib folder. It is possible that I've missed out including or excluding some lib paths.

I reinstalled perl using perlbrew and got it working with v5.14.4. Just in case someone has the same problem:

perlbrew --notest install --thread perl-5.14.4
perlbrew switch perl-5.14.4
perl  hybridScaffold.pl

Cheers, Jenny

Mr-Inamn commented 6 years ago

Hi Andy, I have met the same problem with hybridScaffold.pl. I have tested it with perl 5.10.1, 5.14.4 and 5.16.0. The problem still remains. It really struggles me a lot. I hope you can give me some suggestions~ When I use perl-5.10.1 to run hybridScaffold.pl, the errors is: Type of arg 1 to keys must be hash (not hash element) at scripts_v5134/HybridScaffold/hybridScaffold.pl line 1477, near "}) " For perl-5.14.4, the error is: Segmentation fault (core dumped) For perl-5.16.0, the error is:

Can't load '/public/home/lijing/software/bionano/scripts_v5134/HybridScaffold/scripts/perl5/5.16.3/x86_64-linux-thread-multi/auto/PerlIO/Util/Util.so' for module PerlIO::Util: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /public/home/lijing/software/bionano/scripts_v5134/HybridScaffold/scripts/perl5/5.16.3/x86_64-linux-thread-multi/auto/PerlIO/Util/Util.so) at /public/home/lijing/perl5/perlbrew/perls/perl-5.16.0/lib/5.16.0/XSLoader.pm line 68.
 at /public/home/lijing/software/bionano/scripts_v5134/HybridScaffold/scripts/perl5/5.16.3/x86_64-linux-thread-multi/PerlIO/Util.pm line 10.
yyx8671 commented 6 years ago

Hi @Mr-Inamn,

I think the Perl settings (mainly libs) or versions in your ENV are in conflict. Not sure how did you set them. Have you tried the solution from @JennyHTLee above?

Cheers, Andy

Mr-Inamn commented 6 years ago

Hi Andy, Yes, I have tried Jenny's solution, but the Segmentation fault still exists.

Mr-Inamn commented 6 years ago

Hi Andy, Finally I got it done. The solution is to change the line 1477 as follows with perl-5.10.1. But I have to mention that the Segmentation fault still exists with perl-5.14.4 and perl-5.16.0. The @INC in my file is in the last. You can have a look and check whether the priority is correct.

1477c1477
<         #foreach my $flagIncludeKey (keys $configRef->{$theStage})    {
---
>         foreach my $flagIncludeKey (keys %{$configRef->{$theStage}}) {
@INC
/public/home/lijing/software/bionano/scripts/HybridScaffold/scripts/perl5/5.14.4/x86_64-linux-thread-multi
/public/home/lijing/software/bionano/scripts/HybridScaffold/scripts/perl5/5.14.4
/public/home/lijing/software/bionano/scripts/HybridScaffold/scripts/perl5
/usr/lib/perl5/site_perl
/public/home/lijing/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/x86_64-linux
/public/home/lijing/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4
/public/home/lijing/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4/x86_64-linux
/public/home/lijing/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4