Bug 1707 - globus_l_xio_tcp_contact_string fails on AIX
: globus_l_xio_tcp_contact_string fails on AIX
Status: RESOLVED FIXED
: XIO
Globus XIO
: 0.1
: RS/6000 AIX
: P2 normal
: ---
Assigned To:
:
:
:
:
  Show dependency treegraph
 
Reported: 2004-04-20 10:46 by
Modified: 2004-04-20 17:00 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-04-20 10:46:08
Platform: RS/6000 AIX 5.1
Flavor: vendorcc64dbg

globus_l_xio_tcp_contact_string() fails everytime with cmd = 
GLOBUS_XIO_TCP_GET_LOCAL_CONTACT or GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT 
because getsockname() is failing silently (returns zero but doesn't modify 
sock_name). Then the call to globus_libc_addr_to_contact_string() fails 
because the family isn't set to AF_INET or AF_INET6, checked in the 
GlobusLibcProtocolFamilyIsIP() macro.


Stack trace. I added three lines to for globus_l_xio_tcp_contact_string() for 
debugging:

{
    globus_result_t                     result;
    globus_sockaddr_t                   sock_name;
    globus_size_t                       sock_len;
    int                                 flags;
int err; /* added */
    GlobusXIOName(globus_l_xio_tcp_contact_string);

    GlobusXIOTcpDebugEnter();
    sock_len = sizeof(sock_name);
sock_len = sizeof(struct sockaddr_in); /* added */
memset(&sock_name, 0, sizeof(globus_sockaddr_t)); /* added */
    flags = 0;

Trace: 

(dbx) stop in globus_l_xio_tcp_contact_string
[1] stop in globus_l_xio_tcp_contact_string
(dbx) run -H mss -a mss
220-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
*******************************************************************************

                      NCSA's Mass Storage System
                Running Legato's DiskXtender for Unix 2.6
                    for IRIX on a SGI Origin 2000

        For information on using NCSA's archive storage system see:

       http://www.ncsa.uiuc.edu/UserInfo/Resources/Hardware/UniTree/

*******************************************************************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
UNIX Archive FTP server (DiskXtender Version 2.6) active. Checking 
DiskXtender.conf

220 UNIX Archive FTP server ready.
[1] stopped in globus_l_xio_tcp_contact_string at line 785 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  785       GlobusXIOTcpDebugEnter();
(dbx) where
globus_l_xio_tcp_contact_string(handle = 25, cmd = 35, contact_string = 
0x0ffffffffffff088), line 785 in "globus_xio_tcp_driver.c"
globus_l_xio_tcp_cntl(driver_specific_handle = 0x00000001100dea90, cmd = 35, 
ap = ""), line 2332 in "globus_xio_tcp_driver.c"
globus_i_xio_driver_handle_cntl(0x1100de690, 0x1100970d0, 0x2300000023, 
0xffffffffffff058), line 1431 in "globus_xio_driver.c"
globus_xio_handle_cntl(0x1100de770, 0x1100970d0, 0x2300000023, 
0xffffffffffff088, 0x0, 0x0, 0x1, 0x100de1a0), line 2614 
in "globus_xio_handle.c"
globus_io_tcp_get_local_address(0x1100bd210, 0x1100c12cc, 0x1100c12dc), line 
2472 in "globus_io_xio_compat.c"
globus_i_ftp_control_client_get_connection_info(0x1100bcfd0, 0x1100c12cc, 
0x1100c12dc, 0x1100c12b8, 0x1100c12c8), line 4480 
in "globus_ftp_control_client.c"
FtpConnect(0x110010770, 0x1100bcfd0, 0x1100de170, 0x1500000015), line 403 
in "ftpSession.c"
main(argc = 5, argv = 0x0ffffffffffff338), line 219 in "main.c"
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 786 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  786       sock_len = sizeof(sock_name);
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 787 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  787   sock_len = sizeof(struct sockaddr_in); /* jalt */
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 788 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  788   memset(&sock_name, 0, sizeof(globus_sockaddr_t));
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 789 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  789       flags = 0;
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 791 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  791       switch(cmd)
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 794 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  794           flags |= GLOBUS_LIBC_ADDR_NUMERIC;
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 798 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  798           flags |= GLOBUS_LIBC_ADDR_LOCAL;
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 799 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  799           err = getsockname(handle, (struct sockaddr *) &sock_name, 
&sock_len);
(dbx) print sock_name
(__ss_len = '\0', __ss_family = '\0', __ss_pad1 = "", __ss_align = 0, 
__ss_pad2 = "")
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 800 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  800           if(err < 0)
(dbx) print err
0
(dbx) print sock_name
(__ss_len = '\0', __ss_family = '\0', __ss_pad1 = "", __ss_align = 0, 
__ss_pad2 = "")
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 805 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  805           break;
(dbx) step
stopped in globus_l_xio_tcp_contact_string at line 825 in 
file "/scratch/jalt/BUILD/globus_xio-0.5/builtins/tcp/globus_xio_tcp_driver.c"
  825       result = globus_libc_addr_to_contact_string(
(dbx) step
stopped in globus_libc_addr_to_contact_string at line 3356 in 
file "/scratch/jalt/BUILD/globus_common-4.8/library/globus_libc.c"
 3356       if(!GlobusLibcProtocolFamilyIsIP(GlobusLibcSockaddrGetFamily
(*addr)))
(dbx) step
stopped in globus_libc_addr_to_contact_string at line 3358 in 
file "/scratch/jalt/BUILD/globus_common-4.8/library/globus_libc.c"
 3358           result = globus_error_put(
------- Comment #2 From 2004-04-20 11:21:49 -------
Oh, I didn't get the email notification for 1705 so I didn't realize you had 
posted something. I tried the patches, globus_common 4.10 broke during the 
build. I see -q32 used, so the new globus_core tries 32-bit builds with 
vendorcc64 or did something just go wrong in my build? I can try rebuilding 
everything, as opposed to force-patching, but unfortunately, that will take 
all day to complete. Thanks.

/bin/sh /scratch/jalt/globus-3.2-dbg/sbin/libtool-vendorcc64dbg --
mode=link /usr/vacpp/bin/xlc -q32  -O -D_ALL_SOURCE -q32 -g -qfullpath -
D_ALL_SOURCE -q64    -b32 -b64  -L/scratch/jalt/globus-3.2-dbg/lib -
L/scratch/jalt/globus-3.2-dbg/lib -o libglobus_common_vendorcc64dbg.la -
rpath /scratch/jalt/globus-3.2-dbg/lib -L/scratch/jalt/globus-3.2-dbg/lib  
globus_args.lo globus_callback_nothreads.lo globus_common_paths.lo 
globus_common.lo globus_debug.lo globus_error.lo globus_error_hierarchy.lo 
globus_error_generic.lo globus_i_error_generic.lo globus_error_errno.lo 
globus_i_error_errno.lo globus_fifo.lo globus_handle_table.lo 
globus_hashtable.lo globus_libc.lo globus_libc_setenv.lo globus_list.lo 
globus_memory.lo globus_module.lo globus_object.lo globus_object_cache.lo 
globus_object_hierarchy.lo globus_print.lo globus_priority_q.lo 
globus_strptime.lo globus_symboltable.lo globus_thread_common.lo 
globus_thread_none.lo globus_thread_external.lo globus_thread_pool.lo 
globus_thread_rw_mutex.lo globus_thread_rmutex.lo globus_tilde_expand.lo 
globus_time.lo globus_url.lo globus_error_string.lo
mkdir .libs
/usr/bin/ar -X32 cru .libs/libglobus_common_vendorcc64dbg.a  globus_args.o 
globus_callback_nothreads.o globus_common_paths.o globus_common.o 
globus_debug.o globus_error.o globus_error_hierarchy.o globus_error_generic.o 
globus_i_error_generic.o globus_error_errno.o globus_i_error_errno.o 
globus_fifo.o globus_handle_table.o globus_hashtable.o globus_libc.o 
globus_libc_setenv.o globus_list.o globus_memory.o globus_module.o 
globus_object.o globus_object_cache.o globus_object_hierarchy.o globus_print.o 
globus_priority_q.o globus_strptime.o globus_symboltable.o 
globus_thread_common.o globus_thread_none.o globus_thread_external.o 
globus_thread_pool.o globus_thread_rw_mutex.o globus_thread_rmutex.o 
globus_tilde_expand.o globus_time.o globus_url.o globus_error_string.o
ar: 0707-126 globus_args.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_callback_nothreads.o is not valid with the current object 
file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_common_paths.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_common.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_debug.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_error.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_error_hierarchy.o is not valid with the current object 
file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_error_generic.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_i_error_generic.o is not valid with the current object 
file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_error_errno.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_i_error_errno.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_fifo.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_handle_table.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_hashtable.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_libc.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_libc_setenv.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_list.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_memory.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_module.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_object.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_object_cache.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_object_hierarchy.o is not valid with the current object 
file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_print.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_priority_q.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_strptime.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_symboltable.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_thread_common.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_thread_none.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_thread_external.o is not valid with the current object 
file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_thread_pool.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_thread_rw_mutex.o is not valid with the current object 
file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_thread_rmutex.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_tilde_expand.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_time.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_url.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.
ar: 0707-126 globus_error_string.o is not valid with the current object file 
mode.
        Use the -X option to specify the desired object mode.
make[2]: *** [libglobus_common_vendorcc64dbg.la] Error 36
make[2]: Leaving directory `/scratch/jalt/BUILD/globus_common-4.10/library'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/scratch/jalt/BUILD/globus_common-4.10'
make: *** [all-recursive-am] Error 2

ERROR: Build has failed
 
------- Comment #3 From 2004-04-20 12:38:00 -------
The updated patckes for globus_core, globus_common, globus_io and globus_xio 
fixed this bug.