DX Infrastructure Manager

Expand all | Collapse all

Perl API does not work in a 64bit SuSE Linux environment

  • 1.  Perl API does not work in a 64bit SuSE Linux environment

    Posted 05-17-2013 04:52 PM

    Hi,

    I installed Perl 5.14.2 64bit from the nimsoft archive and also SDK_Perl v 5.04 from there but I cannot load the API.

    Here is my (very simple) testing script:

     

    #!/opt/nimsoft/bin/perl
    #
    use lib '/opt/nimsoft/perllib';
    #
    use Nimbus::API;

     

    It produces this error message:

    Floating point exception

     

    Regards

    Rupert



  • 2.  Re: Perl API does not work in a 64bit SuSE Linux environment

    Posted 05-17-2013 05:13 PM

    We use SLES 11 64 bit without issue.  In fact, it should work with or without the use lib.  Nimsoft perl has /opt/nimsoft/perllib in it's path already.

     

    Maybe post more output or a strace or something and we can tell you more, but I can confirm that this is not an untested combination.  We put it through the paces all all day every day and haven't seen it. 



  • 3.  Re: Perl API does not work in a 64bit SuSE Linux environment

    Posted 05-17-2013 05:43 PM

    That's correct, on SLES 11 it's ok. But all the servers where it does not work, are SLES 10 patchlevel 4.



  • 4.  Re: Perl API does not work in a 64bit SuSE Linux environment

    Posted 07-11-2013 05:35 PM

    > We use SLES 11 64 bit without issue.  In fact, it should work with or without the use lib.  

    > Nimsoft perl has /opt/nimsoft/perllib in it's path already.

     

    That's not entirely true. It used to be, but not for the latest versions.

     

    I just ensured I had the latest version and build of Perl_LINUX_23_64 (v5.14 build 48), and it is built with the following:

     

    # /opt/nimsoft/perl/bin/perl -V
    [..snip..]
    @INC:
    /opt/nimsoft/perl/lib/site_perl/5.14.2/x86_64-linux-thread-multi
    /opt/nimsoft/perl/lib/site_perl/5.14.2
    /opt/nimsoft/perl/lib/5.14.2/x86_64-linux-thread-multi
    /opt/nimsoft/perl/lib/5.14.2

     

    However, on older version of their perl, it used to contain both '/opt/nimbus/perllib' and '.'. These are removed from latest versions.

     

    While the latest version of the SDK_Perl (v5.05 & build 01) still drop the Nimbus::API (and other nimbus api components) in the perllib/ folder.

     

    The robot usually will have the PERL5LIB environment variable set, that won't do squat for scripts run outside the robot. We need to have "use lib '/opt/nimsoft/perllib';" in our scripts aswell.

     

    It's a mess.

     

    > That's correct, on SLES 11 it's ok. But all the servers where it does not work, are SLES 10 patchlevel 4.

     

    If you are using latest versions of their perl and SDK, it does depend on a newer GLIBC, so it might be that your SLES 10.4 simply has a GLIBC that is too old.

     

    # objdump -T /opt/nimsoft/perllib/5.14.2/x86_64-linux-thread-multi/auto/Nimbus/API/API.so | grep GLIBC | awk '{print $5}' | sort -ur
    GLIBC_2.4
    GLIBC_2.3.4
    GLIBC_2.3
    GLIBC_2.2.5

    # objdump -T /opt/nimsoft/perl/bin/perl | grep GLIBC | awk '{print $5}' | sort -ur
    GLIBC_2.3.2
    GLIBC_2.3
    GLIBC_2.2.5

     

    I recently ran into a similar issue on RHEL 5 vs RHEL 6.

     

     

    Regards,

    Anders Synstad

    Basefarm AS



  • 5.  Re: Perl API does not work in a 64bit SuSE Linux environment

    Posted 07-12-2013 08:16 AM

    needing perllib is actually documented, at least in release notes:

     

    Perl depends on finding the Nimsoft Perl Runtime libraries. Normally the Nimsoft Robot will export this information using the PERL5LIB environment variable which it sets for all managed probes. However, debugging your scripts (running from command line) requires that you tell Perl where to find the SDK files. There are several ways to do this:
    
    You can specify it in the script:
    - Unix: use lib "/opt/nimsoft/perllib"
    - Win32: use lib "C:\\Program Files\\Nimsoft\\perllib"
    
    You can set the PERL5LIB environment variable in your preferred shell:
    - root# PERL5LIB=/opt/nimsoft/perllib; export PERL5LIB (Bourne Shell syntax)
    - root# set PERL5LIB /opt/nimsoft/perllib; (Csh syntax)
    - C:\> set PERL5LIB=C:\Program Files\Nimsoft \perllib (Windows)

     



  • 6.  Re: Perl API does not work in a 64bit SuSE Linux environment

    Posted 07-12-2013 09:52 AM

    jonhcw wrote:

    needing perllib is actually documented, at least in release notes:

     


    You are correct, but it doesn't make it any less awkward :smileywink:

     

     

    Anders Synstad

    Basefarm AS