Bugzilla – Bug 1707
globus_l_xio_tcp_contact_string fails on AIX
Last modified: 2004-04-20 17:00:46
You need to log in before you can comment on or make changes to this bug.
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(
Have you tried the following updates (as discussed in bug 1705) ? ftp://ftp.globus.org/pub/gt3/3.2/3.2.0/updates/src/globus_core-3.11.tar.gz ftp://ftp.globus.org/pub/gt3/3.2/3.2.0/updates/src/globus_common-4.10.tar.gz ftp://ftp.globus.org/pub/gt3/3.2/3.2.0/updates/src/globus_xio-0.6.tar.gz
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
The updated patckes for globus_core, globus_common, globus_io and globus_xio fixed this bug.