Bug 225863 - Regression between 10 & 11, Freeswitch hangs when exiting
Summary: Regression between 10 & 11, Freeswitch hangs when exiting
Status: Closed DUPLICATE of bug 227259
Alias: None
Product: Base System
Classification: Unclassified
Component: threads (show other bugs)
Version: 11.1-STABLE
Hardware: amd64 Any
: --- Affects Some People
Assignee: freebsd-threads (Nobody)
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2018-02-13 13:13 UTC by emss
Modified: 2018-05-11 18:43 UTC (History)
1 user (show)

See Also:


Attachments
backtrace (32.21 KB, text/plain)
2018-02-13 13:13 UTC, emss
no flags Details
apr thread (8.17 KB, text/plain)
2018-02-13 13:14 UTC, emss
no flags Details
switch_loadable_module.c (97.43 KB, text/plain)
2018-02-13 13:15 UTC, emss
no flags Details
switch_core.c (99.45 KB, text/plain)
2018-02-13 13:15 UTC, emss
no flags Details
switch.c (34.54 KB, text/plain)
2018-02-13 13:16 UTC, emss
no flags Details
thread.c (8.17 KB, text/plain)
2018-02-13 13:16 UTC, emss
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description emss 2018-02-13 13:13:13 UTC
Created attachment 190575 [details]
backtrace

Freeswitch, a multiprotocol softswitch (http://freewitch.org) runs on
FreeBSD and a port is available (net/freeswitch/)

Freeswitch runs fine on any 10.x installation, issueing the shutdown
command from cli makes the application exit cleanly.

On any 11.x installation, issueing the shutdown command from cli makes
the application hang.

FreeBSD version is :
FreeBSD newsrv.interne.associated-bears.org 11.1-STABLE FreeBSD 11.1-STABLE #0 r327876M: Sat Jan 13 16:19:26 CET 2018     emss@newsrv.interne.associated-bears.org:/usr/obj/usr/src/sys/SE7525GP2  amd64

Generic or custom kernel behave the same.

On Freeswitch side, 1.6.19 (net/freeswitch) and also git branches master
& v1.6 show the same issue.

I've reproduced the issue on the latest v1.6, the backtrace of stuck
process shows the following :
#0  0x00000008030ea91c in _umtx_op_err () from /lib/libthr.so.3
#1  0x00000008030e6f97 in join_common (pthread=0x807ed7700, thread_return=0x7fffffffb658, abstime=0x0) at /usr/src/lib/libthr/thread/thr_join.c:125
#2  0x0000000800f01421 in apr_thread_join (retval=0x7fffffffb68c, thd=0x8059e9658) at threadproc/unix/thread.c:234
#3  0x0000000800cd889e in do_shutdown (module=0x2, shutdown=<optimized out>, unload=SWITCH_TRUE, fail_if_busy=(unknown: 1523667750), err=<optimized out>) at src/switch_loadable_module.c:2031
#4  0x0000000800cdb84a in switch_loadable_module_shutdown () at src/switch_loadable_module.c:2083
#5  0x0000000800c9d92c in switch_core_destroy () at src/switch_core.c:2940
#6  0x0000000000403b2b in main (argc=<optimized out>, argv=0x7fffffffe988) at src/switch.c:1210

It seems the issue lies in thread handling.

I've attached :
- the output of a Freeswitch related script used to gather relevant
  information.
- source files showing in bt

Thank for help.

Éric Masson
Comment 1 emss 2018-02-13 13:14:20 UTC
Created attachment 190576 [details]
apr thread
Comment 2 emss 2018-02-13 13:15:15 UTC
Created attachment 190577 [details]
switch_loadable_module.c
Comment 3 emss 2018-02-13 13:15:55 UTC
Created attachment 190578 [details]
switch_core.c
Comment 4 emss 2018-02-13 13:16:15 UTC
Created attachment 190579 [details]
switch.c
Comment 5 emss 2018-02-13 13:16:42 UTC
Created attachment 190580 [details]
thread.c
Comment 7 emss 2018-05-11 18:43:18 UTC

*** This bug has been marked as a duplicate of bug 227259 ***