bugTransport Sample Protocol - Bugs: bug #22111, Deadlock on disconnect

 
 

bug #22111: Deadlock on disconnect

Submitted by:  Robert de Vries <rhdv>
Submitted on:  Fri 25 Jan 2008 02:36:13 PM UTC  
 
Category:  Core Severity:  4 - Important
Status:  In Progress Privacy:  Public
Assigned to:  Frederik Deweerdt <deweerdt> Open/Closed:  Open
Release:  0.8.3 Fixed Release:  Unknown

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Fri 25 Jan 2008 03:39:58 PM UTC, comment #2: 

Also, I wonder if you could post the backtraces of other threads (if any). A core and executable file would be useful (assuming that you can reproduce it, by sending SIGABRT to the deadlocked process)

Frederik Deweerdt <deweerdt>
Project AdministratorIn charge of this item.
Fri 25 Jan 2008 03:33:44 PM UTC, comment #1: 

Thanks for the report Robert.
I'll have a look at it, in the meantime, could you try to run dlock http://download.savannah.nongnu.org/releases/tsp/dlock/dlock-0.0.2-linux-i686.tar.gz against it (if it is easy to reproduce).
Regards,
Frederik

Frederik Deweerdt <deweerdt>
Project AdministratorIn charge of this item.
Fri 25 Jan 2008 02:36:13 PM UTC, original submission:  

When a client disconnects at the same time as an update is pushed at the same time that the TSP garbage collector runs, there is a deadlock.

Stack trace of thread that pushes the update:
#0  0x007bb402 in ?? ()
#1  0x00645a5e in __lll_mutex_lock_wait () from /lib/libpthread.so.0
#2  0x006422ff in _L_mutex_lock_71 () from /lib/libpthread.so.0
#3  0x006420de in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x0029ddb0 in TSP_session_all_session_send_data (t=1273) at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/ctrl/tsp_session.c:422
#5  0x002a0800 in TSP_datapool_push_commit (datapool=0x2af550, time_stamp=1273, state=GLU_GET_NEW_ITEM)
    at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/ctrl/tsp_datapool.c:112
#6  0x00192bc4 in tsp_datapool_push () from /projects/eurosim5/rhdv/hobbes/EfoRoot/lib/libesTSP.so.4.1

Stack trace of thread that handles the disconnect:
#0  0x007bb402 in ?? ()
#1  0x00645a5e in __lll_mutex_lock_wait () from /lib/libpthread.so.0
#2  0x006422ff in _L_mutex_lock_71 () from /lib/libpthread.so.0
#3  0x006420de in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x0029ce6b in TSP_session_destroy_symbols_table_by_channel (channel_id=0)
    at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/ctrl/tsp_session.c:315
#5  0x00298cdc in TSP_provider_request_close_priv (channel_id=0)
    at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/ctrl/tsp_provider.c:354
#6  0x00298ea8 in TSP_provider_request_close (req_close=0xb52b0cd4)
    at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/ctrl/tsp_provider.c:367
#7  0x002a9a81 in tsp_request_close_1_svc (req_close={version_id = 65537, channel_id = 0}, rqstp=0xb52b12f0)
    at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/rpc/tsp_server.c:104
#8  0x002a6bae in _tsp_request_close_1 (argp=0xb52b0d1c, rqstp=0xb52b12f0)
    at /home/rv62021/rpmbuild/BUILD/build_tree/src/core/rpc/tsp_rpc_svc.c:38
#9  0x002a70bf in tsp_rpc_1 (rqstp=0xb52b12f0, transp=0x9a3be68) at /home/rv62021/rpmbuild/BUILD/build_tree/src/core/rpc/tsp_rpc_svc.c:214
#10 0x00ba6f39 in svc_getreq_common_internal () from /lib/libc.so.6
#11 0x00ba6aad in svc_getreq_poll_internal () from /lib/libc.so.6
#12 0x00ba74a1 in svc_run () from /lib/libc.so.6
#13 0x002aa1bf in TSP_rpc_run (config=0x9a38a10) at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/rpc/tsp_server.c:284
#14 0x002aa507 in TSP_rpc_request_run (this=0x2af5cc) at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/rpc/tsp_server.c:387

Stack trace of the garbage collector thread:
#0  0x007bb402 in ?? ()
#1  0x00645a5e in __lll_mutex_lock_wait () from /lib/libpthread.so.0
#2  0x006422ff in _L_mutex_lock_71 () from /lib/libpthread.so.0
#3  0x006420de in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x002a01ec in TSP_session_get_garbage_session (channel_id=0xb5ce73ac)
    at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/ctrl/tsp_session.c:708
#5  0x0029a80c in TSP_provider_garbage_collector_thread (dummy=0x0)
    at /home/rv62021/rpmbuild/BUILD/tsp-0.8.3-Source/src/core/ctrl/tsp_provider.c:572

Robert de Vries <rhdv>
Project Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by deweerdt (Posted a comment)
  • -email is unavailable- added by rhdv (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

     

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2008-01-25 deweerdt StatusNone => In Progress
        Assigned toNone => deweerdt

    Back to the top


    Powered by Savane 3.5