Categories
Knowledge Support Support exacqVision Server Categories Products

Exacqd handle leak

Symptom:

It is possible after a very long period for the server to stop functioning, requiring a restart.

Problem:

There is a slow handle leak in exacqd introduced in server version 9.5.25/9.6.0. This handle is never used, so a slow memory leak is the result. 

Windows has a limit of 16 million handles. A server that leaks 3 handles a minute would take 4 years to hit this limit. A server with many LDAP users always connected would hit this limit sooner. 

Solution:

Current workaround is to downgrade to 9.4. Future versions should include fix. 

Categories
Knowledge Support Support exacqVision Server Categories Products

SCN-00000008 – Privileged ‘exacqd’ process

SCN #SCN-00000008
Title of SCNPrivileged ‘exacqd’ process
TRAC ##15536
Effective Version9.5.25 – Public 9.6
Products AffectedServer
Reason for Change (Summary)CyberProtection requirement that software not run with elevated privileges by default.

Change

Traditionally, one process runs when the exacqVision Server Service starts: ‘core’ (Linux) or ‘core.exe’ (Windows).  Beginning in 9.6, tasks that require activating a binary or script will be moving (over time) to the new ‘exacqd’ (Linux) or ‘exacqd.exe’ (Windows) process.  This includes executables packaged with the Server installer, as well as OS-level programs.

The following binaries will be executed by exacqd in 9.6 (others will move in upcoming releases):

curl (updates and emails), curl.exe (updates and emails), dvdrwtools, dvd+rw-mediainfo.exe, failover.ps1, failover.sh, mdnsd, mDNSResponder.exe, netconfig.ps1, netconfig.sh, ntpd, ntpdate, update.ps1, tzutil.exe, update.sh, w32time, wodim, wodim.exe

UPDATE: Beginning in dev trunk 19.05.4 and Public 19.06 the following are also moved to exacqd:

curl (all), curl.exe (all), dhcpconfig.sh, driveprep.ps1, driveprep.sh, evselftest, evselftest.exe, failover.ps1, failover.sh, iscsiprep.ps1, iscsiprep.sh, lshw, mkbadst_config.sh, mount, opendhcpd, opendhcpserver.exe, parted, rmfs.sh, smartctl, smartctl.exe, sysinfo.ps.1, teaming.ps.1

On Service start, the exacqd process will start first, which will then start core.  Additionally, exacqd will restart core if it crashes.  These two processes will communicate with each other through a protected pipe (IPC).  The user experience should be exactly the same after upgrading.

One improvement due to this change is that the exacqVision Server start/stop is now significantly faster.

Eventually, the ‘core’ process will be able to run without elevated privileges.  In problem scenarios, ‘exacqd’ will be able to restart ‘core’, but ‘core’ cannot restart ‘exacqd’.  While unlikely, if the ‘exacqd’ process dies, the Server logs will show:

exacqd ipc pipe disconnected
sleeping for one minute to allow active watchdogs to expire...

The watchdog will expire and the OS will reboot.

Additional Documentation

https://trac.exacq.com/DVR/wiki/ServerElevatePrivilegedOperations

https://trac.exacq.com/DVR/ticket/1876

Other information

Here is a non-exhaustive list of some of the functions that will be moving to the ‘exacqd’ process over the next several releases:

FeatureWindows BinariesLinux Binaries
Network Configurationnetconfig.ps1 teaming.ps1netconfig.sh
Remote Updatescurl.exe update.ps1curl update.sh
Auto Export (to CD/DVD)dvd+rw-mediainfo.exe wodim.exedvdrwtools wodim
Notifications (Email)curl.execurl
Archiving/Extendedcurl.execurl parted mount
DHCP Serveropendhcpserver.exeopendhcpd dhcpconfig.sh
IP Camera DetectionmDNSResponder.exemdnsd
Extended Drivesiscsiprep.ps1iscsiprep.py mkbadst_config.sh
Disk Monitoringevselftest.exe smartctl.exeevselftest smartctl
Disk Prepdriveprep.ps1driveprep.sh rmfs.sh
Failoverfailover.ps1failover.sh
Hardware Monitoringsysinfo.ps1lshw
Time/Date/Timezone/NTPtzutil.exe w32timentpd ntpdate
LDAP Queriescurl.execurl