Globus Toolkit 4.0.x troubleshooting

Disclosure: this troubleshooting is intended for legacy applications which mandatory need the version 4.0.x of Globus Toolkit. If you don’t have an impelling reason to install that particular version, it is highly recommended that you install the latest version available of Globus Toolkit from its official web site and follow the installation guide of the official documentation.

See also the official Globus Toolkit admin guide troubleshooting.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

ERROR service.ReliableFileTransferImpl [main,<init>:76] Unable to setup database driver with pooling.Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections

  • open /etc/postgresql/X.Y/main/postgresql.conf(where X.Y is current PostgreSQL version) and check that the line beginning with “listen_addresses” is not commented (i.e. the line should not begin with a #) and is set to listen to all addresses, in the following way:
    listen_addresses = '*'
  • open /etc/postgresql/X.Y/main/pg_hba.conf” and check that the last line looks like:
    host rftDatabase "globus" "x.x.x.x" 255.255.255.255 md5

    where “x.x.x.x” is your public IP address. If you are using Globus Toolkit on your local machine for testing purposes then using 127.0.0.1 should be fine, although in this case you won’t be able to access Globus services outside your machine;

  • check that PostgreSQL is up and running and on which port:
    sudo netstat -tulpn | grep postgres
  • PostgreSQL should run on port 5432. The default port number may be automatically changed (usually to 5433) as result of a version upgrade. To change it back to 5432 edit the /etc/postgresql/X.Y/main/postgresql.conf and the stop and start the service (warning: a restart won’t be enough) with:
    sudo service postgresql stop
    sudo service postgresql start
  • to check whether PostgreSQL is running properly on the 5432 port run:
    telnet localhost 5432
  • the message “telnet: Unable to connect to remote host: Connection refused” would mean either PostgreSQL is not running, or is running on the wrong port. If you get “Connected to localhost.localdomain. Escape character is ‘^]’.” then PostgreSQL is fine.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

ERROR service.ReliableFileTransferImpl [main,<init>:76] Unable to setup database driver with pooling.A connection error has occurred: FATAL:  password authentication failed for user “root”

  • open $GLOBUS_LOCATION/etc/globus_wsrf_rft/jndi-config.xmland look into the “dbConfiguration” section:
    • make sure the userName value is not “root” but “globus”;
    • make sure the “password” value is not “foo” but the password for the globus user you have previously set in postgres;
    • make sure the “connectionString” value contains the fully qualified domain name of your host (e.g. “jdbc:postgresql://your.host.full.domain.com/rftDatabase”).
  • make sure you are running globus-start-container as globus user.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

ERROR service.ReliableFileTransferImpl [main,<init>:76] Unable to setup database driver with pooling.A connection error has occurred: FATAL:  password authentication failed for user “globus”

  • you may have forgotten to create the globus user in postgres. To fix it follow the steps 22 and 23 on this tutorial.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

/O=YourCA/CN=Name Surname” is not authorized to use operation: http://www.globus.org/08/2004/delegationService}requestSecurityToken on this service

  • ensure that in your /etc/grid-security/grid-mapfile there is a line containing the Subject of your usercert.pem (note that you need to change the ‘, ‘ with ‘/’), followed by a user on the server machine (you can use globus if you don’t have a user account on that machine). For example:
    "O=YourCA/CN=Name Surname" globus

    Stop and restart your Globus container for changes to take effect.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

client.GramJob keeps displaying annoying INFO

  • edit /usr/local/globus-4.0.8/container-log4j.properties and set the log4j.category.org.globus variable to WARN so that it will look this way:
    log4j.category.org.globus=WARN

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

exec.StateMachine [RunQueueThread_2,createFaultFromErrorCode:3181] Unhandled fault code 201

Job … failed. Description: Error code: 201 Cause: org.globus.exec.generated.FaultType: Error code: 201 caused by [0: org.oasis.wsrf.faults.BaseFaultType: Script stderr:

Can’t locate Globus/GRAM/JobManager/fork.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.12.4 /usr/local/share/perl/5.12.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.12 /usr/share/perl/5.12 /usr/local/lib/site_perl . /usr/local/globus-4.0.8/lib/perl) at (eval 1) line 2.]

  • you have probably missed one step during the installation of Globus Toolkit. To fix that, run the following command as globus user:
    $GLOBUS_LOCATION/sbin/gpt-postinstall

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

exec.StateMachine [RunQueueThread_2,createFaultFromErrorCode:3181] Unhandled fault code 201

Job … failed. Description: Error code: 201 Cause: org.globus.exec.generated.FaultType: Error code: 201 caused by [0: org.oasis.wsrf.faults.BaseFaultType: Script stderr:

Using a hash as a reference is deprecated at /usr/local/globus-4.0.8/lib/perl/Globus/GRAM/ExtensionsHandler.pm line 161.Using a hash as a reference is deprecated at /usr/local/globus-4.0.8/lib/perl/Globus/GRAM/ExtensionsHandler.pm line 174.]

  • there seems to be a bug in Perl 5.x, or some kind of incompatibility issue between Perl 5.x and Globus Toolkit 4.0.x. To fix that, you need to edit the file lib/perl/Globus/GRAM/ExtensionsHandler.pm and remove the % character in front of $attributes at lines 161 and 174.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

The file $GLOBUS_LOCATION/etc/globus_wsrf_rft/jndi-config.xml is missing

  • you have probably missed one step during the installation of Globus Toolkit. To fix that, run the following command as globus user:
    $GLOBUS_LOCATION/sbin/gpt-postinstall

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

My client application does not receive any notification from the server.

  • make sure the client and the server nodes resides in the same local area network and that there is no interference by a firewall or NAT router. To avoid NAT router problems try adding in the /etc/hosts of each one of your server nodes the following entry:
    x.x.x.x hostname fully.qualified.hostname

    where x.x.x.x is the server public IP.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

java.lang.RuntimeException: File map configuration file /usr/local/globus-4.0.8/etc/gram-service/globus_gram_fs_map_config.xml has no mappings.
at org.globus.exec.service.exec.utils.FileMapping.<init>(FileMapping.java:66).

  • your /usr/local/globus/etc/gram-service/globus_gram_fs_map_config.xml is corrupted or wasn’t created during the Globus Toolkit installation as it was supposed to. Download this file (right click and choose save as), put it in /usr/local/globus/etc/gram-service/ and replace ????? with the hostname of your machine.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Authentication failed [Caused by: Operation unauthorized (Mechanism level: Authorization failed.
Expected “/CN=host/localhost” target but received “/O=…/OU=…/CN=host/…”)]

  • The /etc/grid-security/grid-mapfile of your server machine may be misconfigured. Make sure the values of O, OU e CN are the same as those of your user’s usercert.pem certificate file.

Leave a Reply