Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bio::DB:Taxonomy won't connect to NCBI #363

Open
kastevens opened this issue Aug 20, 2021 · 1 comment
Open

Bio::DB:Taxonomy won't connect to NCBI #363

kastevens opened this issue Aug 20, 2021 · 1 comment

Comments

@kastevens
Copy link

When I use Bio:DB:Taxonomy I get the following error:

MSG: Can't query website: 500 Can't connect to eutils.ncbi.nlm.nih.gov:443
STACK: Error::throw
STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:449
STACK: Bio::DB::Taxonomy::entrez::_run_query /usr/share/perl5/Bio/DB/Taxonomy/entrez.pm:658
STACK: Bio::DB::Taxonomy::entrez::get_taxon /usr/share/perl5/Bio/DB/Taxonomy/entrez.pm:267

NCBIs response:

have upgraded our web front ends to comply with current security protocols. Fundamentally, all software must be using TLS v1.2 to gain access. According to this thread, https://stackoverflow.com/questions/51110181/perl-lwp-why-does-iosocketssl-use-tls-1-0-while-netssl-uses-tls-1-2, changing the following in your Perl code should work:

replace "use IO::Socket::SSL;" with "use Net::SSL;"

@hyphaltip
Copy link
Member

hyphaltip commented Aug 22, 2021

We don't directly use this module (IO::Socket::SSL) so I am unclear where this would addressed. I think based on the inheritance this is probably best addressed in the module Bio::DB::WebDBSeqI because it uses LWP::UserAgent - I think there is some information here https://stackoverflow.com/questions/51072472/lwpuseragent-change-ssl-implementation.
We can likely add this in somewhere in your perl script BEFORE you have indicated use Bio::DB::Taxonomy

BEGIN {
    $ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = 'Net::SSL';
}

But to test can you set this ENV variable before you run your script?
eg in your shell on cmdline or in HPC submission script (assuming bash/sh):

export PERL_NET_HTTPS_SSL_SOCKET_CLASS="Net::SSL"
perl your_ncbi_retrieval_script.pl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants