Problem
The pulsesecure daemon crashes with a segmentation fault in connectionMgr.so at startup. This occurs when it is scanning for device status. This results in an inability to use pulse secure at all.
Workaround
I was able to work around this issue by setting each unused network device to state 'down' using:
sudo ifconfig <devicename> down
After doing this, the pulsesecure daemon was able to start.
Details
strace output
[pid 351912] access("/proc/net", R_OK) = 0 [pid 351912] access("/proc/net/unix", R_OK) = 0 [pid 351912] socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 13 [pid 351912] ioctl(13, SIOCGIFNAME, {ifr_index=2, ifr_name="eno1np0"}) = 0 [pid 351912] close(13) = 0 [pid 351912] socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 13 [pid 351912] ioctl(13, SIOCGIFNAME, {ifr_index=4, ifr_name="enp71s0f3u1u2c2"}) = 0 [pid 351912] close(13) = 0 [pid 351912] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x3fea9} --- [pid 351908] <... restart_syscall resumed>) = ? [pid 351913] <... epoll_wait resumed>) = ? <unavailable> [pid 351913] +++ killed by SIGSEGV (core dumped) +++ [pid 351908] +++ killed by SIGSEGV (core dumped) +++ [pid 351912] +++ killed by SIGSEGV (core dumped) +++ +++ killed by SIGSEGV (core dumped) +++
stacktrace
May 24 09:55:20 workstation.localdomain systemd[1]: Started Process Core Dump (PID 351914/UID 0). May 24 09:55:20 workstation.localdomain audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='[email protected] comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' May 24 09:55:20 workstation.localdomain systemd-coredump[351915]: [🡕] Process 351904 (pulsesecure) of user 0 dumped core. Stack trace of thread 351912: #0 0x00007f971bf3d192 _ZN22IPAddressChangeMonitor10hasGatewayEi (connectionMgr.so + 0xa8192) #1 0x00007f971bf3ce52 _ZN22IPAddressChangeMonitor6updateERNSt7__cxx114listI14IPAddressEntrySaIS2_EEE (connectionMgr.so + 0xa7e52) #2 0x00007f971bf3ca9b _ZN22IPAddressChangeMonitor17onInterfaceChangeE21InterfaceChangeStatusRKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE (connectionMgr.so + 0xa7a9b) #3 0x00007f971bf3dab2 _ZN29NetworkInterfaceChangeMonitor17onInterfaceChangeEPKc21InterfaceChangeStatus (connectionMgr.so + 0xa8ab2) #4 0x00007f971bf3e188 _ZN15InternalMonitor22start_initial_networksEb (connectionMgr.so + 0xa9188) #5 0x00007f971bf3e09c _ZN15InternalMonitor11monitorProcEv (connectionMgr.so + 0xa909c) #6 0x00007f971bf3e987 _ZN15dcfActiveObjectI15InternalMonitorE32ActiveObjectStaticThreadFunctionEPv (connectionMgr.so + 0xa9987) #7 0x0000555b3e02ab5c _ZN9os_thread17runThreadFunctionEPv (pulsesecure + 0x2ab5c) #8 0x00007f971f8a3299 start_thread (libpthread.so.0 + 0x9299) #9 0x00007f971ec1d353 __clone (libc.so.6 + 0x100353) Stack trace of thread 351904: #0 0x00007fff909229e8 __vdso_time (linux-vdso.so.1 + 0x9e8) #1 0x00007f971a59fedc _ZN15dcfRandomStreamC2Ev (libhcUtils.so + 0xa7edc) #2 0x00007f971a591716 n/a (libhcUtils.so + 0x99716) #3 0x00007f971fb0a60e call_init (ld-linux-x86-64.so.2 + 0x1060e) #4 0x00007f971fb0a6fc _dl_init (ld-linux-x86-64.so.2 + 0x106fc) #5 0x00007f971ec583e5 _dl_catch_exception (libc.so.6 + 0x13b3e5) #6 0x00007f971fb0eb0a dl_open_worker (ld-linux-x86-64.so.2 + 0x14b0a) #7 0x00007f971ec58388 _dl_catch_exception (libc.so.6 + 0x13b388) #8 0x00007f971fb0e2bb _dl_open (ld-linux-x86-64.so.2 + 0x142bb) #9 0x00007f971f8953bc dlopen_doit (libdl.so.2 + 0x23bc) #10 0x00007f971ec58388 _dl_catch_exception (libc.so.6 + 0x13b388) #11 0x00007f971ec58453 _dl_catch_error (libc.so.6 + 0x13b453) #12 0x00007f971f895be9 _dlerror_run (libdl.so.2 + 0x2be9) #13 0x00007f971f895448 dlopen (libdl.so.2 + 0x2448) #14 0x0000555b3e0250c0 _Z14os_loadLibraryPKc (pulsesecure + 0x250c0) #15 0x0000555b3e01d29f _ZN20DSAccessPluginLoader10initPluginEv (pulsesecure + 0x1d29f) #16 0x0000555b3e01d143 _ZN20DSAccessPluginLoader4initEv (pulsesecure + 0x1d143) #17 0x0000555b3e01f0d9 _ZN15DSAccessService11startPluginEPKcj (pulsesecure + 0x1f0d9) #18 0x0000555b3e020b1a _ZN15DSAccessService18onConfigFileChangeEv (pulsesecure + 0x20b1a) #19 0x0000555b3e0246f4 _ZN17ConfigFileMonitor5startEPKw (pulsesecure + 0x246f4) #20 0x0000555b3e01ec66 _ZN15DSAccessService10InitializeE16_DSAccessIpcMode (pulsesecure + 0x1ec66) #21 0x0000555b3e01610b _Z13CmdRunServicev (pulsesecure + 0x1610b) #22 0x0000555b3e015fad main (pulsesecure + 0x15fad) #23 0x00007f971eb44b75 __libc_start_main (libc.so.6 + 0x27b75) #24 0x0000555b3e01596a _start (pulsesecure + 0x1596a) Stack trace of thread 351908: #0 0x00007f971f8afa8a __futex_abstimed_wait_common64 (libpthread.so.0 + 0x15a8a) #1 0x00007f971f8a95c4 pthread_cond_timedwait (libpthread.so.0 + 0xf5c4) #2 0x0000555b3e01855a _ZN21_dcfConditionVariable4WaitER9_dcfMutexR11_dcfTimeOut (pulsesecure + 0x1855a) #3 0x0000555b3e017831 _ZN18os_gate_event_baseILb0EE4waitEm (pulsesecure + 0x17831) #4 0x0000555b3e02235d _ZN19PluginCleanupThread11cleanupProcEv (pulsesecure + 0x2235d) #5 0x0000555b3e022561 _ZN15dcfActiveObjectI19PluginCleanupThreadE32ActiveObjectStaticThreadFunctionEPv (pulsesecure + 0x22561) #6 0x0000555b3e02ab5c _ZN9os_thread17runThreadFunctionEPv (pulsesecure + 0x2ab5c) #7 0x00007f971f8a3299 start_thread (libpthread.so.0 + 0x9299) #8 0x00007f971ec1d353 __clone (libc.so.6 + 0x100353) Stack trace of thread 351913: #0 0x00007f971ec1d69e epoll_wait (libc.so.6 + 0x10069e) #1 0x00007f971f64cdd1 _dispatch_event_loop_drain (libdispatch.so + 0x71dd1) #2 0x00007f971f62b172 _dispatch_mgr_invoke (libdispatch.so + 0x50172) #3 0x00007f971f62b07c _dispatch_mgr_thread (libdispatch.so + 0x5007c) #4 0x00007f971f63876f _dispatch_root_queue_drain (libdispatch.so + 0x5d76f) #5 0x00007f971f637dec _dispatch_worker_thread (libdispatch.so + 0x5cdec) #6 0x00007f971f8a3299 start_thread (libpthread.so.0 + 0x9299) #7 0x00007f971ec1d353 __clone (libc.so.6 + 0x100353) May 24 09:55:20 workstation.localdomain systemd[1]: [email protected]: Deactivated successfully.
helpful link
* https://stackoverflow.com/questions/14264371/how-to-get-nic-details-from-a-c-program