globus / globus/globus-toolkit-documentation
Failure to contact GridFTP server always leads to globus_ftp_control handle leak.
- Dominant language
- HTML
- Stars
- 1
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
In Globus Toolkit 6.0.1506371041 while using globus_ftp_client API and trying to contact non-existing GridFTP sever brings underlying globus_ftp_control handle into (cc_handle.cc_state == GLOBUS_FTP_CONTROL_CLOSING) state. Then globus_ftp_client level callback is called *before* handle moves into UNCONNECTED state. And if code using API manages to call globus_ftp_client_handle_destroy fast enough it bols down to globus_l_ftp_client_quit_callback which leads to globus_ftp_client_handle.c line 1796
/* Else --> leak! */
and globus_ftp_control handle is unrecoverably leaked *without* any error reported and globus_ftp_client handle destroyed.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with globus_ftp_client_handle.c around line 1796 and trace globus_l_ftp_client_quit_callback alongside the underlying globus_ftp_control state transition and callback ordering described here. Reproduce the failed GridFTP connection and confirm that destroying the client handle does not leave the control handle leaked or silently unrecoverable.
Written by the indexing model from the issue text.
Assessment
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100