Free to wrong pool in SSL.pm

Hi

I´m runing komodo IDE 12.01 on Win7 and since today I´m getting this error when running debug mode on a perl script that reads a https page and pars the info.

Free to wrong pool 8a9580 not 930000190ef10ca1 at c:/Perl64/site/lib/IO/Socket/SSL.pm line 2739.

I´ve completely remove active perl 5.28 as well as Komodo IDE and reinstall them with no success.

Any idea where to look at?

Hi @acornejo,

Thanks for reaching out for help. Please confirm your code runs outside of the Komodo debugger. If it does, please provide a minimal viable code sample that reproduces the bug.

  • Carey

That is a known error coming from Net-SSLeay 1.84 which is not thread-safe. We have an open ticket to get it updated to one of the newer versions that fixes this issue.

1 Like

Hi Carey

Thanks for your support- This is the code I´m running:

It is working fine in production (Ubuntu 18.04) and was working in my komodo devel until last week.

I wanted to do a new script based on this script and komodo gave me this error when running it in debug mode. Note that I get the same error when running other scripts we have.

Ejecutando reporte 61
Free to wrong pool 589580 not 9300000e5808139d at C:/Perl64/site/lib/IO/Socket/SSL.pm line 2739.

Hi, Thanks for your answer.

Is there a workaround I can use until new version comes out?

Regards

Alvaro

Unfortunately, none that I’m aware of. It does only affect Windows, which is why you are not seeing it on Linux.

@acornejo,

So this post can be more helpful to people that might come across it later, could you add your code sample to your reply to my comment? Looks like it didn’t get added the first try.

Hi

This is the code sample


 #!/usr/bin/perl
 use strict;
 use warnings;
 use LWP::UserAgent;
 use HTTP::Request;
 use Time::Piece;
 print "\nEjecutando reporte 65...\n";  
 my $date = localtime->strftime('%Y-%m-%d');
 #print $date;

# Report call
 my $ua = new LWP::UserAgent;
 $ua->agent("Perl API Client/1.0");
 my $url = "https://URL/report?id=65";
 my $request = HTTP::Request->new("GET" => $url);
 my $response = $ua->request($request);
# print "Response::: " . $response . "\n";

# Move report data received to array
 use JSON;
 my $json_obj = JSON->new->utf8->decode($response->content);
 my $row_num = scalar(@{$json_obj});
 # print scalar(@{$json_obj}), " rows:\n";

# my variables
 my $filename = "";
 my $fileContent = "";

 # Process each row of the response array
 foreach my $row (@{$json_obj}){
 
    $filename = @{$row}[0] . "-" . $date . ".bak";
    #print $filename . " \n";
    $fileContent = @{$row}[1];
    #print $fileContent . " \n";
    # escribo el archivo
    $filename = "/MyPath/" . $filename;
    open(FH, '>', $filename) or warn "El archivo $filename no se pudo guardar: $!\n";
    print FH $fileContent ;
    close(FH);    
    print "Se guardó data del " . @{$row}[0] . " el " . $date . "\n";
   
 }

2 Likes

Just installed the latest build ActivePerl-5.28.1.0000-MSWin32-x64-c50440fa on Windows 10.
Still same issue.
Free to wrong pool 1058f40 not 9500a400f0da1dd4 at E:/Perl64/site/lib/IO/Socket/SSL.pm line 2739

Code is so simple. it is pasted below.

Works (and always did):
perl http.pl (https url to google homepage) 1
(prints out www.google.com page contents to stdout)

Still doesn’t work:
perl http.pl https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html 1
Actual: Free to wrong pool 1058f40 not 9500a400f0da1dd4 at E:/Perl64/site/lib/IO/Socket/SSL.pm line 2739
Expected: prints contents of the webpage at the url above

This error really needs to be fixed. Can someone point me to how to file a ticket, or to where the existing ticket is?

Here’s my code:
http.pl:

use LWP::Simple;

my $cuteMessage = " **For more info, look";
my $url = @ARGV[0];
my $debug = @ARGV[1];

if ($debug eq ‘1’) { $debug = true; };

if ($url eq ‘’) { die “*please specify a url on the command line.” . $cuteMessage; }

my $contents = get($url);

if ($debug) { print $contents; }

The issue is already fixed, but the fix is not available. Net-SSLeay 1.85 or higher needs to be available on The Platform before it can be corrected.

Is there a fix for this yet?

Yes. Net-SSLeay 1.88 is available. You might have to rebuild your project though. The new solver is rather different and old recipes usually need changes.

How do I get Net-SSLeay 1.88

  • Wait until we update the Base-line release.
    or
  • Fork a featured release and update Net-SSLeay yourself. (you need an account to do this)
    See the online documentation on how to use The Platform builder services to work with Projects.

Hi

I´ve tried to update Net-SSLeay to version 1.88 that seems to be available in perl 5.28.1 but get the following dependency errors:

  • No ingredient version satisfies build dependency builder camel == (of requirement language/perl Math-BigInt-GMP == 1.6004)
  • No ingredient version satisfies build dependency language alternative-built-language >= 0 (of requirement language/perl Math-BigInt-GMP == 1.6004)

I tried to also update Math-Bigint-GMP but still get dependency errors

Regards

Alvaro

Make sure you get the upstream fixes for 5.28. That error message indicates your build is still using the older solver 0 version, which is no longer handling GMP.

Hi

How do I do that? I´ve defined version as auto in MATxx and xxGMP packages but still have the same error

Regards
Alvaro

On the Overview page for your project there is a tag showing updates are available from upstream.

Hi

I selected update upstream but get similar errors:

  • No ingredient version satisfies runtime dependency language/perl List::MoreUtils::XS >= 0.430 (of requirement language/perl List-MoreUtils)
  • No ingredient version satisfies build dependency builder camel == (of requirement language/perl Math-BigInt-GMP)
  • No ingredient version satisfies build dependency builder camel == (of requirement language/perl Math-BigInt-GMP)

I tried to change perl version, but still got similar erros

That message happens if the update doesn’t apply cleanly.

If you can fork a fresh copy from the Featured Project and reapply your changes, that’s the fastest way for users to fix that problem.