Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Unable to connect to remote host when using Perl 5.16

Help
Peter
2013-10-09
2013-10-11
  • Peter
    Peter
    2013-10-09

    Performing a local debug we get the following error when using Perl 5.16.

    Unable to connect to remote host: 10.196.208.77:5000
    Compilation failed in require.
    at C:/Users/XV13499/scm-workspace/Skripte/AddPackagesToPackageGroup.pl line 0.
    main::BEGIN() called at C:/Users/XV13499/scm-workspace/Skripte/AddPackagesToPackageGroup.pl line 0
    eval {...} called at C:/Users/XV13499/scm-workspace/Skripte/AddPackagesToPackageGroup.pl line 0
    BEGIN failed--compilation aborted.
    at C:/Users/XV13499/scm-workspace/Skripte/AddPackagesToPackageGroup.pl line 0.

    When we switch to Perl 5.10 everything works fine.

    Any ideas?

    Peter

     
  • Peter
    Peter
    2013-10-10

    Just performed a test with a Hello World Skript. Same result. Why does the debugger try to connect to a remote host. 10.196.208.77:5000 is my notebook.

     
  • Peter
    Peter
    2013-10-10

    =head1 NAME

    HelloWorld.pl - Simple Test Skript

    =cut

    use-Section

    use strict;

    Main

    my $printOut = "This is a simple Hello World Skript";
    print "$printOut\n";

    exit (0);

     
  • Jan Ploski
    Jan Ploski
    2013-10-10

    "Remote host" is a misnomer. It's only "remote host" from the viewpoint of the connecting "local client" (= EPIC plugin). EPIC launches perl -d with some options to make it listen on TCP port 5000, then attempts to connect to that port to establish the debug session. For some reason this procedure fails on your machine.

    Some troubleshooting ideas:
    - check with "netstat" that there is indeed a process listening on port 5000 when you launch a debug session
    - check that port 5000 is not used by some other application (although in this case EPIC should pick the next free port)
    - check firewall or virus scanner settings or temporarily disable it to see if it interferes
    - check IP address assignment (maybe your machine has multiple IPs and perl -d is listening on a different IP address than the address to which EPIC tries to connect to)

     
  • Peter
    Peter
    2013-10-11

    • no process is listening on port 5000 when I launch a debug session
    • no other application uses port 5000
    • to disable firewall and virus scanner is a bit difficult.But on the other hand, why should it work with Perl 5.10 then
    • we indeed have two IP assignments (IP4 and IP6). But the problem also occurs on an old vista machine which only has an IP4 IP address.

    Peter

     
    • Jan Ploski
      Jan Ploski
      2013-10-11

      The Perl version difference indeed sounds like a clue. It could be that EPIC is mixing up the two parallel Perl installations. I just checked that the 5.16 debugger works under Windows Server 2008/Eclipse Indigo 3.7.0/EPIC 0.6.45, so the newer Perl version is not an issue as such.

      Instead of Hello World, try a script with print join("\n", @INC); to display your effective include path (the command line parameters with which perl -d is started by EPIC, also the include path, are furthermore logged to workspace.log if you enable "Perl debugger console (experimental)" in EPIC Preferences. You could try running the same command from the command line to manually reproduce the "Compilation failed in require" error.

      Make sure there are no perl 5.10 directories in include path when you are running it through perl 5.16. Also check that the Include Path in your project's Properties is empty for the Hello World test. Check the PERL5LIB environment variable (if set).

      Finally, compare perl5db.pl from c:\Path-to-Perl\lib\perl5db.pl with the one found at workspace.metadata.plugins\org.epic.debug\perl5db.pl. The files should not be identical, but the version in org.epic.debug should match the one found in your respective Perl installation (except for a single line patch which EPIC applies to it when it copies it from the original location before starting a debug session). If you see perl5db.pl from 5.10 in org.epic.debug while you are running perl 5.16, that would be the likely cause of problems. Similarly, it would be a problem if anywhere on the include path you can see a perl5db.pl that doesn't match your Perl version (e.g. perl5db.pl in your own project directory or some such).