<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article Debugging Qlik Replicate Crashes in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/Debugging-Qlik-Replicate-Crashes/ta-p/1689963</link>
    <description>&lt;P&gt;A Qlik Replicate task (or service) crashes when it encounters a critical error and the Operating System (OS) steps in and immediately terminates the task (or service). &amp;nbsp;As such no cleanup is done and the Replicate log file (task or service) immediately ends without the usual stopping message, e.g.,&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;FONT face="courier new,courier"&gt;00001650: 2019-01-14T07:42:40 [AT_GLOBAL &amp;nbsp; &amp;nbsp; &amp;nbsp; ]I: &amp;nbsp;Closing log file at Mon Jan 14 07:42:40 2019 &amp;nbsp;(at_logger.c:2436)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Additionally, the OS will log the crash in its own log file. &amp;nbsp;On Windows, you can view the information from the OS in the Windows Event Viewer applet (Event ID 1001&amp;nbsp;on&amp;nbsp;repctl.exe). &amp;nbsp;On Linux, the location and method to view it depend on the system configuration.&amp;nbsp; If necessary, ask the Linux Admin.&lt;/P&gt;
&lt;P&gt;The basic idea of what needs to be done after a Replicate crash is the same whether Replicate is running on Windows or Linux.&amp;nbsp;&amp;nbsp;You need to get a crash dump file from the OS and match it with a Replicate log file.&amp;nbsp;&amp;nbsp;Ideally, you want a log file with the logger module set to&amp;nbsp;Verbose&amp;nbsp;where the crash occurs, but this may not be possible.&amp;nbsp;Replicate core/crash dump files can be rather large, 6 GB or larger. &amp;nbsp;Make sure the disk/partition where the file(s) will be written has enough free space. &amp;nbsp;In general, it is good practice NOT to use the system disk because if it gets filled up, the machine will become unstable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Windows &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Capturing&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Microsoft DebugDiag2&amp;nbsp;needs to be installed on the Windows Replicate Server machine to get a Windows crash dump file. &amp;nbsp;As of Fall 2019, the latest version is v3. Download&amp;nbsp;DebugDiag2&amp;nbsp;from&amp;nbsp;&lt;A href="https://www.microsoft.com/en-us/download/details.aspx?id=58210" target="_blank" rel="noopener"&gt;Microsoft directly&lt;/A&gt;.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Once installed, run the Collection Tool as a user with Administrator permissions on the machine.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Launch the program from:&amp;nbsp;Start menu &amp;gt;&amp;nbsp; Debug Diagnostics Tool 2 &amp;gt; DebugDiag 2&lt;/LI&gt;
&lt;LI&gt;Create a crash rule. You can use all the defaults, except you will need to configure the crash rule for all&amp;nbsp;repctl.exe&amp;nbsp;processes. &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;The default crash dump folder location is "%SystemDrive%\Program Files\DebugDiag\Logs\Crash rule for all instances of repctl.exe".&lt;/LI&gt;
&lt;LI&gt;This will create crash dumps for the first 10 repctl.exe crashes.&lt;BR /&gt;A crash dump file may take 5 GB or more. &amp;nbsp;If you do not have much free disk space on the System Drive, you should change the folder to one on another drive that does have enough free disk space.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;When Replicate crashes, there will be a DMP file in the crash dump folder. &amp;nbsp;The PID of the process will be part of the file. &amp;nbsp;Find the Replicate task log whose first line contains the same PID. &amp;nbsp;It will look like "PID: #)" where # is the PID in the crash dump file name.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Example&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;FONT face="courier new,courier"&gt;00005408: 2020-03-06T13:55:36 [AT_GLOBAL &amp;nbsp; &amp;nbsp; &amp;nbsp; ]I: &amp;nbsp;Task Server Log - SQL_Test &amp;nbsp;(V6.5.0.423 USREM-LOV.qliktech.com Microsoft Windows 8 Enterprise Edition (build 9200) 64-bit, PID: 6812) started at Fri Mar 06 13:55:36 2020 &amp;nbsp;(at_logger.c:2654)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Reading&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Crash dumps can be analyzed either on the Replicate Server machine or any Windows PC that has the DebugDiag2 installed. &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Launch the Analysis Tool from&amp;nbsp;Start &amp;gt; Debug Diagnostics Tool 2 &amp;gt; DebugDiag 2 Analysis.&amp;nbsp;&lt;BR /&gt;Click on:
&lt;OL class="lia-list-style-type-lower-alpha"&gt;
&lt;LI&gt;The first&amp;nbsp;Analysis Rule,&amp;nbsp;CrashHangAnalysis;&lt;/LI&gt;
&lt;LI&gt;Add the Data Files&amp;nbsp;icon to load the crash dump file&lt;/LI&gt;
&lt;LI&gt;Start Analysis.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI&gt;The Analysis Tool will display the results in the Edge browser. &amp;nbsp;The first section,&amp;nbsp;Analysis Summary, will contain a link to the thread that crashed. &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Click the link and note the&amp;nbsp;System ID #. The&amp;nbsp;System IDs&amp;nbsp;are the first word in the Replicate task log. &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Go to the end of the Relicate log file and search backward for that&amp;nbsp;System ID. The logger for that&amp;nbsp;System ID&amp;nbsp;will be the third word in that message (e.g.,&amp;nbsp;TARGET_LOAD). &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;If possible, recreate the problem but with that particular logger set to the Verbose level. &amp;nbsp;I.e., if the thread that is crashing has the&amp;nbsp;TARGET_LOAD&amp;nbsp;logger, then set the&amp;nbsp;TARGET_LOAD&amp;nbsp;logger to Verbose.&lt;/LI&gt;
&lt;LI&gt;If you get a new crash dump, attach both the latest crash dump and a corresponding log file (with the logger set to Verbose) to the issue for R&amp;amp;D to analyze. &amp;nbsp;If there is no new crash dump file, attach the original (only) crash dump file and 2 Replicate log files (one corresponding to the crash dump and a new one with logger set to Verbose) to the issue for R&amp;amp;D to analyze.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Linux &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Capturing&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;No extra software is needed to create and analyze core dump files on Linux; however, you do need to ensure that core dump file creation is enabled and where they are created.&lt;/LI&gt;
&lt;LI&gt;To ensure that core dump files are enabled, you need to run the command:&lt;BR /&gt;&lt;LI-CODE lang="markup"&gt;ulimit -c​&lt;/LI-CODE&gt;&lt;/LI&gt;
&lt;LI&gt;If the returned value is NOT unlimited, you can change it with the command:&lt;BR /&gt;&lt;LI-CODE lang="markup"&gt;ulimit -c unlimited​&lt;/LI-CODE&gt;&lt;/LI&gt;
&lt;LI&gt;Verify the value is changed by running the first command again.&amp;nbsp;Note:&amp;nbsp;While root can always change this value, a non-root user can only change this if the hard limit is already unlimited and the change is applicable to only that one session.&amp;nbsp;If root makes the change, it applies to all processes. Linux has a hard limit and a soft limit.&lt;/LI&gt;
&lt;LI&gt;To see where core dump files are created, run the command:&lt;BR /&gt;&lt;LI-CODE lang="markup"&gt;sysctl kernel.core_pattern​&lt;/LI-CODE&gt;&lt;/LI&gt;
&lt;LI&gt;If you need to change the value, use the&amp;nbsp;-w&amp;nbsp;option.&amp;nbsp;Note:&amp;nbsp;While any user can run&amp;nbsp;sysctl&amp;nbsp;to see the value of a variable, only root can change variable values with the&amp;nbsp;-w&amp;nbsp;option. For example:&amp;nbsp;&lt;BR /&gt;&lt;LI-CODE lang="markup"&gt;sysctl -w kernel.core_pattern=/tmp/%e_%p.dmp​&lt;/LI-CODE&gt;&lt;/LI&gt;
&lt;LI&gt;If the first word of the returned value is the pipe symbol (|), e.g., "|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %e %P %I" (without quotes), then the first word after the pipe symbol is a program that processes the core dump file. &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Check the manual page for the program to see where/if/how it creates core dump files. &amp;nbsp;Otherwise, the contents of the file will be the template for the location of the core dump file.&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;The template can contain % specifiers, which are substituted by the following values when a core file is created:
&lt;UL&gt;
&lt;LI&gt;%% - a single % character&lt;/LI&gt;
&lt;LI&gt;%p - PID of dumped process&lt;/LI&gt;
&lt;LI&gt;%u - (numeric) real UID of dumped process&lt;/LI&gt;
&lt;LI&gt;%g - (numeric) real GID of dumped process&lt;/LI&gt;
&lt;LI&gt;%s - number of signals causingthe dump&lt;/LI&gt;
&lt;LI&gt;%t - time of dump, expressed as seconds since the Epoch, &amp;nbsp;1970-01-01 00:00:00 +0000 (UTC)&lt;/LI&gt;
&lt;LI&gt;%h - hostname (same as nodename returned by uname(2))&lt;/LI&gt;
&lt;LI&gt;%e - executable filename (without path prefix)&lt;/LI&gt;
&lt;LI&gt;%E - pathname of executable, with slashes ('/') replaced by exclamation marks ('!').&lt;/LI&gt;
&lt;LI&gt;%c - core file size soft resource limit of crashing process (since Linux 2.6.24)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;A single % at the end of the template is dropped from the core filename, as is the combination of a % followed by any character other than those listed above. &amp;nbsp;All other characters in the template become a literal part of the core filename. &amp;nbsp;The template may include '/' characters, which are interpreted as delimiters for directory names. &amp;nbsp;The maximum size of the resulting core filename is 128 bytes (64 bytes in kernels before 2.6.19). &amp;nbsp;The default value in this file is "core". &amp;nbsp;For backward compatibility, if the value does not include "%p" and the kernel.core_uses_pid sysctl variable is nonzero, then PID will be appended to the core filename.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Since version 2.4, Linux has also provided a more primitive method of controlling the name of the core dump file. &amp;nbsp;If the&amp;nbsp;kernel.core_uses_pid sysctl&amp;nbsp;variable contains the value&amp;nbsp;0, then a core dump file is simply named core. &amp;nbsp;If this file contains a nonzero value, then the core dump file includes the process ID in a name of the form core.PID.&lt;BR /&gt;&lt;BR /&gt;Since Linux 3.6, if the&amp;nbsp;sysctl fs.suid_dumpable&amp;nbsp;variable is set to&amp;nbsp;2&amp;nbsp;("suid‐safe"), the pattern must be either an absolute pathname (starting with a leading '/' character) or a pipe.&lt;/P&gt;
&lt;BLOCKQUOTE class="quote"&gt;
&lt;P&gt;Some Linux VM environments will require the following to enable the core dump:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Alter “/etc/abrt/abrt-action-save-package-data.conf” to change to OpenGPGCheck = no&lt;/LI&gt;
&lt;LI&gt;Then in site_arep_login.sh set the following:&amp;nbsp;&lt;BR /&gt;
&lt;PRE&gt;# enter site specific settings here&lt;BR /&gt;ulimit -c unlimited&lt;BR /&gt;export AREP_CRASH_DUMP_TYPE=FULL&lt;/PRE&gt;
&lt;/LI&gt;
&lt;LI&gt;Systemctl restart areplicate so the ulimit is changed for the attunity user.&lt;/LI&gt;
&lt;LI&gt;Cause the crash&lt;/LI&gt;
&lt;LI&gt;The core dump goes to /var/lib/systemd/coredump&lt;/LI&gt;
&lt;/OL&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;If possible, you will want to have the PID in the core dump file name since that is critical in finding the right Replicate log file. &amp;nbsp;Use the&amp;nbsp;-w&amp;nbsp;option of the&amp;nbsp;sysctl&amp;nbsp;command to change the value of any if the previously mentioned variables.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Reading&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;To analyze a core file you will need the&amp;nbsp;gdb&amp;nbsp;program. &amp;nbsp;Since Replicate is not compiled and linked with debug enabled the only thing you'll be able to get from gdb is a stack backtrace with the bt command. &amp;nbsp;If you can great. &amp;nbsp;The backtrace contains a list of the function names that were open at the time of the crash. &amp;nbsp;The names may give Customer Support (or R&amp;amp;D) an idea of which logger to set to Verbose and reproduce the problem to get a Replicate log file with more information. &amp;nbsp;If not, that's fine. &amp;nbsp;Just attach the core dump files you have along with the corresponding Replicate log files. &amp;nbsp;(You get the Replicate log files in Linux the same way as in Windows - by matching the PID of the first line in the Replicate log file with the PID in the core dump file name.)&lt;BR /&gt;&lt;BR /&gt;In addition, please make sure that TRACE ON DEMAND is not turned on when collecting VERBOSE logs for crashes. Make sure that the option "Store trace/verbose logging in memory, but if an error occurs write to the logs" &amp;nbsp;is not enabled.&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Collecting Qlik Replicate Process Dumps Video&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;&lt;div class="video-embed-center video-embed"&gt;&lt;iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FPtQsqG306ro%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DPtQsqG306ro&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FPtQsqG306ro%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" width="200" height="112" scrolling="no" title="Creating Replicate Process Dump Files" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 16 Dec 2025 11:23:47 GMT</pubDate>
    <dc:creator>Ted_Manka</dc:creator>
    <dc:date>2025-12-16T11:23:47Z</dc:date>
    <item>
      <title>Debugging Qlik Replicate Crashes</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Debugging-Qlik-Replicate-Crashes/ta-p/1689963</link>
      <description>&lt;P&gt;&lt;SPAN&gt;This article provides an overview of the debugging steps to take when encountering a hard crash in Replicate.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Dec 2025 11:23:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Debugging-Qlik-Replicate-Crashes/ta-p/1689963</guid>
      <dc:creator>Ted_Manka</dc:creator>
      <dc:date>2025-12-16T11:23:47Z</dc:date>
    </item>
  </channel>
</rss>

