This section describes known problems in Ninf-G Version 4.2.5.
This problem is due to the bug of GT4.2.
This problem can be avoided by configuring Java WS Core. Add "publishHostName" parameter to <globalConfiguration> in $GLOBUS_LOCATION/etc/globus_wsrf_core/server-config.wsdd. Set the value of "publishHostName" to "true".
If Ninf-G Client is built with GT4.2, Ninf-G Client and Executables may abort when their connections are closed.
This problem is due to the bug of GT4.2.
If Ninf-G Client is built with GT4.2, Ninf-G Client may abort when it queries to MDS4 server.
This problem is due to the bug of GT4.2 (Bug# 6268)
'authonly' is not available for Java Client.
This problem is due to the bug of GT4 ( Bug# 4669)
Ninf-G Client built as nonthread flavor sometimes freezes when 'crypt' attribute is set to 'authonly'.
This problem is due to the bug of GT4 ( Bug# 4354)
Refresh credential causes Segmentation fault on GT4.
This problem is due to the bug of the GT4 ( Bug #4620).
Authentication only may cause freezes with Non Thread flavor though authentication only works fine with Pthread flavor.
This problem is due to the bug of GT4 ( Bug# 4354).
Java Client does not work with authentication only.
This problem is due to the bug of GT4 ( Bug# 4669).
Ninf-G Client cannot invoke Ninf-G executables via Invoke Server GT4py / WS GRAM on Mac OS X.
This problem is due to the bug of the GT 4 ( Bug# 4321).
Ninf-G Client returns an exit code 1 in the following case.
Initializing Function/Object handles using Invoke Server GT4py for GT 4.0.1 WS GRAM does not work correctly on Solaris.
This problem is due to the bug of GT 4.0.1 ( Bug# 4275).
Functions for initialization of function/object handles (e.g. grpc_function_handle_init()) are MT-unsafe if Ninf-G is built with GT4 and Ninf-G Client does not use Invoke Server.
Thus Ninf-G Client may not work correctly, if multiple threads initialize function/object handles simultaneously.
This problem is due to the bug of GT4 ( Bug# 3942).
This problem has been fixed on Globus Toolkit Version 4.0.2 or later.
If client_timeout is specified for MDS4 with HTTP protocol, Ninf-G client will freeze when it will reach to the timeout time. This bug is due to the bug of GT 4.0.1 ( Bug# 4157).
By default, Ninf-G uses HTTPS protocol which does not cause this problem.
Ninf-G Client may cause segmentation faults if it meets the following conditions.
This problem is due to the bug of the GT 4.0.1 ( Bug# 3921).
Java WS container causes "OutOfMemoryError" and outputs the following message when it receives many simultaneous requests for RPC.
: ERROR container.ServiceThread [ServiceThread-11599,run:306] Run out of heap (server level) java.lang.OutOfMemoryError ERROR container.ServiceThread [ServiceThread-11551,doFault:701] Run out of memory (application level) java.lang.OutOfMemoryError :
In order to avoid this problem, increase the maximum heap size of
the JVM when running the container.
It is described in the documentation of
"GT 4.0: Java WS Core" ,
"4.1.2. Recommended JVM settings for the Java WS Core container".
Due to the bug #3448, refresh credential does not work in GT4.0.1 WS GRAM. Bug is in ReliableFileTransferResource class and please refer ViewCVS for more details.
Encryption may cause freezes with Non Thread flavor of GT3 (Globus Toolkit Version 3) or later though encryption works fine with Pthread flavor of GT3 or later.
This problem is due to the bug of GT3 or later (Bug# 4354).
Ninf-G Client freezes if it tries to create a function/object handle for an unknown host whose hostname can not be resolved. This problem is caused by the bug of the Globus Toolkit Version 2 library compiled with pthread flavor. The library compiled with non thread flavor does not cause this problem and the bug was fixed for the Globus Toolkit Version 3 or later.
This problem has been fixed on Globus Toolkit Version 3.2 or later.
grpc_get_info_np() returns incorrect CPU time if Ninf-G is built with pthread flavor on Solaris and Linux which use not NPTL but linuxthreads.
Ninf-G Client does not terminate if _exit() is called in a signal handler. This problem occurs if Ninf-G Client is built with pthread flavor on Linux which uses not NPTL but linuxthreads.
If the version of Linux kernel is 2.6 or later, thread library is usually NPTL and should not cause this problem.
For glibc 2.3.2 or later, you can use getconf command to confirm the name of the thread library.
% getconf GNU_LIBPTHREAD_VERSION
linuxthreads-0.10
Otherwise, the following command prints the name of the thread library.
% `ldd /bin/ls | grep 'libc.so' | awk '{print $3}'` |\
egrep -i 'nptl|threads'
ng_gen command generates C source files for stub programs from IDL. Prior to generating the C source files, the IDL file is processed by C pre-processor (CPP). CPP command is detected when the Ninf-G is configured.
PGI compiler may generate illegal C source files when it is used as CPP. Here is an example.
Before CPP(Unexpected space characters are included before and after the period.)Globals { #include <stdio.h> }
After CPPGlobals { # include < stdio . h > }
There are 2 ways to avoid this problem.
--no-cpp
or --with-cpp
option
when executing ng_gen.
ng_gen has options to skip CPP or to change CPP.
% ng_gen --no-cpp target.idl
--no-cpp
option skips pre-processing and it is effective only
when the pre-processor macros are not used in the IDL file.
% ng_gen --with-cpp="gcc -xc -E" target.idl
--with-cpp
option specifies CPP command.
In this example, macros in the IDL file are expanded by GCC
pre-processor, but pre-processing and compilation of stub
programs are performed by PGI compiler.
For quotation of the file name, use double-quotes ("stdio.h") instead of less-than and greater-than (<stdio.h>).
On AIX 5.2, Python does not work correctly due to a bug of Python. Ninf-G provides a patch for this bug and it is included in ng-4.x.x/external/python_aix_patch directory in the Ninf-G package. See README in the directory for more details.
Invoke Server GT4py will exit immediately if /usr/bin/python is used on Mac OS X. This problem can be avoided by using python 2.4.2 built from source bundle.
Assembler may detect warnings when optimization is enabled with GCC Version
3.2.2 or prior on Itanium2.
The warning message is as follows:
cc -Wall -O2 <snip> -c -o ngclSession.o ngclSession.c /tmp/ccMDS56n.s: Assembler messages: /tmp/ccMDS56n.s:10125: Warning: Use of 'mov' may violate WAW dependency 'GR%, %in 1 - 127' (impliedf), specific resource number is 14 /tmp/ccMDS56n.s:10124: Warning: This is the location of the conflicting usage /tmp/ccMDS56n.s:10396: Warning: Use of 'mov' may violate WAW dependency 'GR%, %in 1 - 127' (impliedf), specific resource number is 14 /tmp/ccMDS56n.s:10395: Warning: This is the location of the conflicting usage cc -Wall -O2 <snip> -c -o ngStream.o ngStream.c /tmp/cc35sx1T.s: Assembler messages: /tmp/cc35sx1T.s:2893: Warning: Use of 'mov' may violate WAW dependency 'GR%, %in 1 - 127' (impliedf), specific resource number is 14 /tmp/cc35sx1T.s:2892: Warning: This is the location of the conflicting usageThis problem is reported to GCC bugzilla.
On Windows, ServerSocket sometimes fails to accept requests
for connection from Ninf-G Executables
if it receives many (about 10 or more) requests at the same time.
This should be an Windows-specific problem since it does not appear on
Linux or Solaris.
Use Linux or Solaris for large-scale applications.
dcomplex variables is not available if gcc-2.96 is used on IA64
platform.
Although compilation of Ninf-G Client program will be succeed, the Ninf-G
client program will be terminated with an error.
In order to avoid this problem, other version of gcc should be used.
The Invoke Server feature in Ninf-G Client is not supported for non-thread flavor.
Job start timeout feature (in <SERVER> section in Client configuration file and handle attributes) does not work with non-thread flavor in the following case.
The Refresh credentials (in <CLIENT> section in client configuration file) and Session timeout (RPC timeout) (in <FUNCTION_INFO> section in client configuration file) feature in Ninf-G Client is not supported for non-thread flavor.
Heartbeat detection by Ninf-G Client is not supported for non-thread flavor. In order to detect the heartbeat from Ninf-G Executables, use pthread flavor for Ninf-G Client.
Note: Sending heartbeat by Ninf-G Executables is supported for both pthread and non-thread flavors.
Ninf-G 2.4.0 provides a new capability to retry to establish a TCP connection between the Ninf-G Executable and the Ninf-G Client if the Ninf-G Executable fails to connect to the Ninf-G Client.
This is a new capability which is not supported by Ninf-G 2.3.0 and prior versions. Although this capability will be provided in the future release of Ninf-G, be sure that it will cause a problem if the version of Ninf-G on the client is 2.4.0 or later and the version of Ninf-G on the server is 2.3.0 or prior.
This problem can be avoided by setting tcp_connect_retryCount to 0 on the <SERVER> section of client configuration file.
Using different versions of Ninf-G on a client and servers may cause
an error if MPI is used as backend of a remote executable.
It is recommended to use the same version of Ninf-G on a client and
servers.
When the job is invoked by the function for initializing an array of function/object handles(grpc_function_array_handle_np() etc.) and Invoke Server NAREGISS is used, environment variable TMPDIR in the Ninf-G Executable may be set to directory which does not exist. Thus, Ninf-G Executable may not be able to create temporary files.
This problem can be avoided by specifying "tmp_dir" attribute in Ninf-G Executable configuration file.
The hostname attribute in <CLIENT> section in the client configuration file may not be set appropriately if globus_libc_gethostname() is called before grpc_initialize().
When a Ninf-G Client is terminated by SIGTERM or SIGINT,
Ninf-G Executable may not be died if MPI is specified as backend.
If you want to use MPI and terminate a Ninf-G Client by SIGTERM or SIGINT,
please use Non Thread flavor at remote side. However, Ninf-G Executable may
not be died until a remote function is completed.