[ 
https://issues.apache.org/jira/browse/CELIX-240?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bjoern Petri closed CELIX-240.
------------------------------
    Resolution: Fixed

> RSA: deadlock when stopping
> ---------------------------
>
>                 Key: CELIX-240
>                 URL: https://issues.apache.org/jira/browse/CELIX-240
>             Project: Celix
>          Issue Type: Bug
>          Components: Remote Service Admin
>            Reporter: Bjoern Petri
>            Assignee: Bjoern Petri
>
> When a service is exported and the RSA is shut down first it'll stop the 
> endpoint tracker, which triggers the call of 
> remoteServiceAdmin_removeExportedService. 
> In both cases the access to the list of exported services is protected by a 
> lock. Hence, when calling  remoteServiceAdmin_removeExportedService the lock 
> is already been locked by remoteServiceAdmin_stop resulting in a deadlock.
> {code}
> Thread 54 (Thread 0x7fff597f2700 (LWP 2417)):
> #0  __lll_lock_wait () at 
> ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
> #1  0x00007ffff5ae3657 in _L_lock_909 () from 
> /lib/x86_64-linux-gnu/libpthread.so.0
> #2  0x00007ffff5ae3480 in __GI___pthread_mutex_lock (mutex=0x61da30) at 
> ../nptl/pthread_mutex_lock.c:79
> #3  0x00007ffff7741f3e in celixThreadMutex_lock (mutex=0x61da30) at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/utils/private/src/celix_threads.c:92
> #4  0x00007ffff18d9046 in remoteServiceAdmin_removeExportedService 
> (registration=0x6079d0)
>     at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c:444
> #5  0x00007ffff18da690 in exportRegistration_endpointRemoved 
> (handle=0x6079d0, reference=0x609f10, service=0x6088e0)
>     at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/remote_services/remote_service_admin/private/src/export_registration_impl.c:168
> #6  0x00007ffff7bc9ce6 in serviceTracker_untrack (tracker=0x609ac0, 
> reference=0x609f10, event=0x0)
>     at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/framework/private/src/service_tracker.c:332
> #7  0x00007ffff7bc9590 in serviceTracker_close (tracker=0x609ac0) at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/framework/private/src/service_tracker.c:142
> #8  0x00007ffff18da3ad in exportRegistration_stopTracking 
> (registration=0x6079d0)
>     at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/remote_services/remote_service_admin/private/src/export_registration_impl.c:91
> #9  0x00007ffff18d83a5 in remoteServiceAdmin_stop (admin=0x61da20)
>     at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c:216
> #10 0x00007ffff18da181 in bundleActivator_stop (userData=0x61cfd0, 
> context=0x61c980)
>     at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/remote_services/remote_service_admin_http/private/src/remote_service_admin_activator.c:102
> #11 0x00007ffff7bbcf7f in fw_stopBundle (framework=0x604130, bundle=0x619a30, 
> record=false)
>     at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/framework/private/src/framework.c:884
> #12 0x00007ffff7bb44dd in bundle_stopWithOptions (bundle=0x619a30, options=0) 
> at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/framework/private/src/bundle.c:326
> #13 0x00007fffc43f1025 in stopCommand_execute (command=0x60e230, 
> line=0x7fff597f1d70 "stop", out=0x7fffc41e9f65 <shellTui_write>, 
> err=0x7fffc41e9f65 <shellTui_write>)
>     at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/shell/private/src/stop_command.c:73
> #14 0x00007fffc43f0434 in shell_executeCommand (shell=0x60c800, 
> commandLine=0x7fff597f1d70 "stop", out=0x7fffc41e9f65 <shellTui_write>, 
> error=0x7fffc41e9f65 <shellTui_write>)
>     at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/shell/private/src/shell.c:157
> #15 0x00007fffc41ea152 in shellTui_runnable (data=0x60a030) at 
> /home/bjoern/Development/celix/git/celix.current.plain/celix/shell_tui/private/src/shell_tui.c:86
> #16 0x00007ffff5ae1182 in start_thread (arg=0x7fff597f2700) at 
> pthread_create.c:312
> #17 0x00007ffff724047d in clone () at 
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to