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: CoreSeverity: 4 - Important
Status: In ProgressPrivacy: Public
Assigned to: Frederik Deweerdt <deweerdt>Open/Closed: Open
Release: 0.8.3Fixed 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 File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

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

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Fri 25 Jan 2008 03:40:20 PM UTCdeweerdtStatusNone=>In Progress
      Assigned toNone=>deweerdt

    Back to the top


    Powered by Savane 3.1-cleanup1