Bug 3509 - GLOBUS_COMMON_MODULE->GLOBUS_CALLBACK_MODULE deactivation blocks indefinitely
: GLOBUS_COMMON_MODULE->GLOBUS_CALLBACK_MODULE deactivation blocks indefinitely
Status: NEW
: Toolkit Internals
globus_common
: development
: PC Linux
: P3 normal
: ---
Assigned To:
:
:
:
:
  Show dependency treegraph
 
Reported: 2005-06-22 14:53 by
Modified: 2005-06-22 14:53 (History)


Attachments


Note

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


Description From 2005-06-22 14:53:32
When calling "globus_module_deactivate(GLOBUS_COMMON_MODULE)" it blocks 
indefinitely. The underlying "globus_module_deactivate
(GLOBUS_CALLBACK_MODULE)" ends up waiting on a condition variable indefinitely.

This occurs seldomly (1:1000+), but when it does it means the calling 
application can't exit. In this case, I noticed it when using the globus-rls-
cli command-line client to RLS. I don't know enough about the globus_callback 
module to know whether this could be due to some misuse by the RLS Client, but 
I don't think the RLS Client is directly using globus_callback so I'd imagine 
that something else in globus_common or globus_io (if anything) would be more 
directly responsible. I'm not 100% certain though.

Specifically I was using my test environment setup script, which runs in a 
loop of copying a file to a local directory then calling "globus-rls-cli 
create mynewlfn gsiftp://path/to/mynewpfn rls://host". I was running the 
script to create 50,000 such files and file mappings in RLS. About every 1000 
to 5000 invocations the rls client failed to exit thus halting my script. I 
attached via gdb and go the backtrace for the process (included below).

While I realize this problem doesn't occur frequently, for users with batch 
scripts it would be encountered.

Here's a list of backtraces from three such hangs. They look identical, but 
just in case there is some distinction I'm including three of them. From the 
looks of it, it fails to deactivate the GLOBUS_COMMON_MODULE.

#0  0xffffe410 in ?? ()
#1  0xbfffbff8 in ?? ()
#2  0x00000002 in ?? ()
#3  0x00000000 in ?? ()
#4  0x4030c740 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/libpthread.so.0
#5  0x401615aa in globus_cond_wait (cv=0x4016e080, mut=0x4016e04c)
    at globus_thread_pthreads.c:939
#6  0x40146c13 in globus_l_callback_deactivate ()
    at globus_callback_threads.c:589
#7  0x40156e62 in globus_module_deactivate (module_descriptor=0x4016cddc)
    at globus_module.c:311
#8  0x4014b32a in globus_l_common_deactivate () at globus_common.c:159
#9  0x40156e62 in globus_module_deactivate (module_descriptor=0x4016ce18)
    at globus_module.c:311
#10 0x0804bfa1 in cleanexit (s=0) at cli.c:1402
#11 0x08049f90 in main (argc=5, argv=0xbfffe8d4) at cli.c:396

--

(gdb) bt
#0  0xffffe410 in ?? ()
#1  0xbfffb168 in ?? ()
#2  0x00000002 in ?? ()
#3  0x00000000 in ?? ()
#4  0x4030c740 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/libpthread.so.0
#5  0x401615aa in globus_cond_wait (cv=0x4016e080, mut=0x4016e04c)
    at globus_thread_pthreads.c:939
#6  0x40146c13 in globus_l_callback_deactivate ()
    at globus_callback_threads.c:589
#7  0x40156e62 in globus_module_deactivate (module_descriptor=0x4016cddc)
    at globus_module.c:311
#8  0x4014b32a in globus_l_common_deactivate () at globus_common.c:159
#9  0x40156e62 in globus_module_deactivate (module_descriptor=0x4016ce18)
    at globus_module.c:311
#10 0x0804bfa1 in cleanexit (s=0) at cli.c:1402
#11 0x08049f90 in main (argc=5, argv=0xbfffda44) at cli.c:396

--

(gdb) bt
#0  0xffffe410 in ?? ()
#1  0xbfffabe8 in ?? ()
#2  0x00000002 in ?? ()
#3  0x00000000 in ?? ()
#4  0x4030c740 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/libpthread.so.0
#5  0x401615aa in globus_cond_wait (cv=0x4016e080, mut=0x4016e04c)
    at globus_thread_pthreads.c:939
#6  0x40146c13 in globus_l_callback_deactivate ()
    at globus_callback_threads.c:589
#7  0x40156e62 in globus_module_deactivate (module_descriptor=0x4016cddc)
    at globus_module.c:311
#8  0x4014b32a in globus_l_common_deactivate () at globus_common.c:159
#9  0x40156e62 in globus_module_deactivate (module_descriptor=0x4016ce18)
    at globus_module.c:311
#10 0x0804bfa1 in cleanexit (s=0) at cli.c:1402
#11 0x08049f90 in main (argc=5, argv=0xbfffd4c4) at cli.c:396