Limitations
This section contains limitations added in both this release and in previous releases.
Limitations for installation, upgrade, and deployment
MySQL "Socket Error" appears during backup or restore
You may encounter a MySQL "socket error" while running the backup and restore scripts on Linux if the database host is not specified correctly in the command.
Workaround: To connect the script to the correct MySQL host, add the --db-host
parameter to the command, followed by the fully qualified domain name (FQDN) or the IP address of the host where the database is running. For example:
backup --db-host 127.0.0.1
Validate server fails to start after command line installation on Windows
Starting in release 2024.2, the Validate server may fail to start if installed via command line on Windows, particularly when run from a network drive. The issue arises from a file-path lookup library that cannot resolve network paths for Java.
Workaround: We currently do not recommend running Klocwork or Validate tools from a network drive. If you do run the Validate server executables from a network drive, make sure to install Java 17 locally and either add it to the PATH or KW_JAVA environment variable.
Non-expiring application tokens that were created in 2024.2 actually expire after 30 days
A minor bug caused application tokens that were created in 2024.2 with no expiration date to actually expire after 30 days. If you attempt to authenticate using a non-expiring token after 30 days, the authentication will fail. This issue is fixed in Validate 2024.3.
Workarounds:
- Create an application token that has a custom expiration date (Perforce recommends two years).
- Upgrade to Validate 2024.3 or later (if available). Then, create a new application token and set the field Expires at to Never.
Issue with kwauthconfig prompting for credentials when using SAML or OIDC authentication
If you have configured your Validate Server to use SAML or OIDC authentication, attempting to set or reset the database password using kwauthconfig will incorrectly prompt you for user name and password credentials when connecting to the server.
Workaround: Run kwauth --url <Validate server>:<port> to authenticate with the Validate Server. After successful authentication, restart kwauthconfig. It will not prompt you for credentials.
Cannot authenticate SAML or OIDC when using pre-2024.2 Klocwork tools and plug-ins
When using Klocwork tools or plug-ins version 2024.1 or earlier on a SAML- or OIDC-enabled server, you must use kwauth tools from release 2024.2 or higher in order to authenticate.
Additionally, you are required to use the --insecure
flag during authentication for your older tools to be able to authenticate with the server. This flag allows users to save their credential information in an insecure manner in their ltoken and should only be used when necessary.
kwconfigeditor displays an unused Severity 0
This is expected and relates to the use of Severity 0 in QAC projects. Since no Klocwork projects use Severity 0, it can be ignored.
Mixed Klocwork and QAC projects will display severity levels based on the last uploaded project
Mixed projects are not technically supported. It should be noted that if you attempt to upload both Klocwork and QAC results to the same project, the severities displayed in the Issues List in Validate will depend on which project type was uploaded last. If QAC results were uploaded last, then QAC severities will be used, and vice versa.
Unable to use kwgcheck after upgrading to Debian 10.7
If you upgrade to Debian 10.7, you may be unable to launch kwgcheck for Klocwork Desktop Analysis due to missing libraries.
Workaround: To install the missing libraries, run the following command:
sudo apt-get install --reinstall libgtk2.0-0
dbvalidate cleanup utility can result in data loss
Since using the 2023.1-2024.2 versions of the dbvalidate cleanup tool can result in data loss, it is not recommended to run dbvalidate or dbvalidate cleanup. When upgrading from a previous version, it is suggested that you migrate using the documented procedure. If an issue arises after the upgrade, please raise a support ticket.
Klocwork desktop tools cannot connect to previous servers
As of 2023.4, the Klocwork desktop tools cannot connect to previous Klocwork servers.
Workaround: To connect the Klocwork desktop tools to the Klocwork server, use the same release version for both.
Network connection problems between the client and server, caused by infrastructure-related configurations, can cause kwadmin load to hang indefinitely.
Workaround: Use the hidden option --hard-timeout
for kwadmin load to specify a timeout value in hours, minutes, or seconds. If a request from the client to the server goes unanswered for the duration of the timeout value, the load command will fail.
Example: kwadmin load myProject myTables --hard-timeout 10m
Limitations for Checker configuration migration
Note the following limitations with checker configuration files during the upgrade process (via the import process):
- Only modifications to default checker configuration files are imported. If you had a non-default checker enabled in an earlier installation and it was renamed in a new version, you will not see the checker in new builds. You must manually re-enable the checker in the new version of Klocwork.
- If a checker that was enabled by default was renamed in the new version of Klocwork, you will not see new codes until the first system build of the new installation.
kwcollect fails on tables generated by new analysis engine
Workaround: If your project has been built with Klocwork 2018's new analysis engine, you must include the, '--all-sources' option on the command-line. This requirement does not apply if your project was built without Klocwork 2018's new analysis engine. To determine if your project was built with the new analysis engine, examine the output of the build process in the build.log, contained in the root of the build's output tables folder. Find the line that begins with 'Selected Engines'. Your project has been built using Klocwork 2018's new analysis engine if 'MODERN' appears between square brackets.
Debian 10.x and later cannot run the license server
Debian no longer supports the Linux Standard Base core (lsb-core) as of version 10.x. Therefore, the license server cannot be run on the Debian 10.x and later platforms.
kwauth doesn't properly set HTTP/1.1 header
Sometimes when the Klocwork Server IP address is associated with multiple host names or located behind a reverse proxy, kwauth does not properly resolve the FDQN of the Klocwork Server.
{client_tools_install_folder}\config\client_config.xml
<?xml version="1.0" encoding="UTF-8"?><params> <host resolveHost="false" /></params>
64-bit REPCXX Memory Limitations
"memory: REPCXX has exceeded the memory threshold of 16000000 Kb, mem_usage={0} Kb. Memory threshold can be increased by passing a value (in GB) to REPCXX through the '--memory-limit=' option or through the 'KW_CLASSIC_ENGINE_MEMORY_LIMIT' environment variable."
Workaround: As the error message indicates, the new --memory-limit
REPCXX option or 'KW_CLASSIC_ENGINE_MEMORY_LIMIT' environment variable may be used to override the 16 GB memory limit. For example, to increase the memory limit to 32 GB per REPCXX process, you can run kwbuildproject
with option --add-compiler-options '--memory-limit=32'
.
"REPCXX memory input set to 32 GB (32000000 KB)"
'kwloaddb: Java heap space' error when trying to load a build
During a load or a build from a connected project, or when running kwcheck run, an 'OutOfMemory' exception may occur.
Workaround: To fix this error, you can try to increase the amount of memory for kwloaddb in your java_wrappers_memory.conf file. If you continue to see the error, contact Customer Support.
dbvalidate outputs error(s) when attempting to validate a database that contains streams
For projects with streams, when attempting to run dbvalidate as follows:
dbvalidate will incorrectly output error messages on steps a1, k, and occasionally j and l. These messages can be ignored.
Using 'sconf' files on Linux does not filter defects in the file specified.
If you are using windows style paths in an 'sconf' file, connected projects can yield inconsistent results.
Workaround: Avoid using of windows style file paths (For example, 'C:\Checkout\PRs\PR-59822\test.cpp' or 'C:\\Checkout\\PRs\\PR-59822\\test.cpp'). You can use UNIX-style paths across all platforms, for example:
Windows: C:/Checkout/PRs/PR-59822/test.cpp
Linux: /checkout/mydir/test.cpp
Limitations for build integration
Cannot load Android 4.4 (KitKat) using the default memory settings for kwloaddb, kwadmin and kwjava
When building the Android platform, you may need to increase the memory settings for certain Klocwork tools on the machine invoking the load process. These values can be modified in the <klocwork_install>/config/java_wrappers_memory.conf file.
Limitations for C# analysis
Features not supported for C# integration projects
The following features are not supported for C# integration projects:
Feature | Details |
---|---|
Build integration | |
Validate |
|
Features not supported for C# desktop analysis
The following features are not supported for C# desktop analysis:
- Display of server issues in Visual Studio
- File-level analysis in Visual Studio (only solutions and projects can be analyzed)
- Using knowledge bases
Limitations for Python
Python checkers not supported
Starting in release 2023.3, the following checkers listed in the Python taxonomy are not supported. They are disabled by default and can be enabled manually:
E0001 |
F0001 |
I0001 |
I0020 |
E0013 |
F0002 |
I0010 |
I0021 |
E0014 |
F0010 |
I0011 |
I0022 |
E0015 |
F0011 |
I0013 |
I0023 |
Limitations for Validate
Backups cannot be restored with a different Validate version
A backup created with one version of validate_backup cannot be restored with a different version of validate_restore. For example, a backup created with Validate 24.4 cannot be restored using Validate 24.3 or 25.1.
Workaround: Use the same version of Validate to back up and restore a project or server. To avoid compatibility issues when you migrate to a new server version, we recommend that you create new project and server backups after you finish the migration.
Unable to sign into a Validate 2024.1 or earlier server
You are unable to sign in to a Validate 2024.1 or earlier server, or you encounter the error Trying to rerun async when not logged in
.
Workaround: Clear your browser cache and cookies for the Validate server.
CI build paths are not shown in the tree structure of the 'Modules' page in Validate/Validate
When creating a new module, the file tree always shows files from the latest Server build (even if the latest uploaded build was CI build from kwciagent).
Workaround: If you want to include files or paths from a CI build, you need to manually input them using 'Path patterns' instead of using the 'Use tree' field.
Limitations for the Visual Studio extension
Authentication failure with Visual Studio Extension 2024.1 or earlier with Validate Server with modern authentication enabled
An issue arises when using the Visual Studio extension version 2024.1 or earlier with a Validate server upgraded to use modern authentication (modern-jit or modern-pp). When prompted to log in and enter your user name and password, authentication will fail.
Workaround:
-
Install the 2024.2 authtools package or a later version.
-
Run Device Authorization with the new kwauth, adding the
--insecure
flag. Your user name might have changed, so you may need to contact your system administrator.
You can continue to use Visual Studio Extension 2024.1 or upgrade to the latest plugin. Note that the latest plugin defaults to a new analysis engine based on kwcheck.
The number of issues changes for each analysis
For each Visual Studio extension analysis that you run, a different number of issues appear.
Workaround: To resolve this issue, use the default kwcheck engine.
'One or more extensions were loaded using deprecated APIs' warning message in Visual Studio 2019
Visual Studio 2019 may give a warning message regarding deprecated APIs. If you select the recommended option to not allow deprecated API usage, this will disable the Klocwork plug-in and you will no longer be able to access the Klocwork tools in VS.
Workaround: Select the 'Don't show this message for current extensions' option to safely ignore this warning and continue to use the Klocwork plug-in.
'Visual Studio stopped responding for X seconds.' warning message in Visual Studio 2019
Visual Studio 2019 may give a warning message regarding slower performance in relation to use of the Klocwork plug-in. If you select the option to 'disable this extension', it will disable the Klocwork plug-in and you will no longer be able to access the Klocwork tools in VS.
Workaround: Select the 'Don't show this message for current extensions' option to safely ignore this warning and continue to use the Klocwork plug-in.
Visual Studio 2015 preventing analysis of C++
A known issue with Visual Studio 2015 running on Windows Server 2012 prevents the Klocwork extension for Visual Studio from analyzing C++ projects.
Workaround: Either modify the build configuration version to x86, or switch the analysis mode to Classic. To switch to Classic mode, go to Tools > Extensions and Updates > Klocwork > Options, and select the Analysis tab. Under Analysis Mode, select the Use Classic Mode check box.
Visual Studio extension may be disabled
When installing the Klocwork extension for Visual Studio into Visual Studio 2015, the extension may initially be disabled. If so, go to Tools > Extensions & Updates and select Installed. Select the Klocwork Extension for Visual Studio. You may need to restart Visual Studio.
Visual Studio hang
The Klocwork development team is tracking a support request with the Visual Studio Technical Support team where user actions cause Visual Studio to hang under a number of conditions. These Visual Studio hangs occur whether or not the Klocwork VS Extension is installed. For example, when navigating into the definition of a function that is defined in a source file that is not currently open in a tab in Visual Studio, Visual Studio opens that file in a temporary tab. When this temporary tab is open, if you then navigate to the definition of a different function, Visual Studio hangs.
'kwcc' error in Visual Studio after upgrading
If, before 2020.1, you deployed the MISRA checkers to your project using kwdeploy, and have a misra.xml file in your %USERPROFILE%\.klocwork\plugins folder, you might see errors similar to the following:
kwcc: Error: C:\Users\username\.klocwork\plugins\misra.xml:5783: Trying to describe error 'MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1' several times. Repeated descriptions are ignored
Workaround: To fix this issue, delete the misra.xml file located in your %USERPROFILE%\.klocwork\plugins folder before performing the upgrade.
Help for Klocwork community checkers cannot be accessed directly from Visual Studio
If you attempt to access the help for a community checker by right-clicking the checker and selecting View Checker Documentation, you will get a 'Cannot find requested topic on your computer' error message.
Workaround: Offline help for the community checkers is available by using the portal. Online help is also available.
The filter by severity option in the Microsoft Visual Studio extension may not display custom severities for C++ projects
For C++ projects where you have defined custom severities, the severity filter list may not display the correct items. The list may display default severity names, or in the case where you have a mixed C++ and C# project, the list will display the C# severities. You can still use the filter, but the severity names displayed in the issue tree may not match the items you selected in the list (as the filter is applied by severity number).
Klocwork server option fails to retrieve projects when you use a hard-coded IP address
If you use a hard-coded IP address in the Klocwork server dialog under the Klocwork options menu, the Klocwork extension for Visual Studio fails to retrieve the list of projects.
Workaround: Use the host name instead of the IP address; if this is not an option, you can add an entry in the hosts file for the IP address.
Options dialog is unresponsive if the license host box contains an invalid character
If you enter the details for your license host and type an invalid character (such as a ';' or '#'), the dialog box turns red and you can't change any other settings within the Options dialog box.
Workaround: To fix this issue, replace the content of the license host box with a valid character (any letter of the alphabet).
Defect column does not update correctly unless tabs are converted to spaces
If you press tab to indent code, this will insert a tab character or a configurable number of spaces. When the Klocwork extension shows the column number where a defect occurs, it counts a tab as one space. If you do not configure Visual Studio to convert tabs to spaces on source files that have tabs and when you press the tab key, the correct column information for defects may be incorrect.
Workaround: To ensure that Klocwork counts the correct number of columns when it displays where a defect has occurred, go to Tools > Options > Text Editor > All Languages > Tabs and select Insert spaces.
Klocwork Visual Studio plug-in installation does not detect Visual Studio 2015
If you try to install the Klocwork Visual Studio plug-in on Visual Studio 2015 and you have a higher version of Visual Studio (such as 2017 or 2019) already installed, the VSIX installer does not automatically detect the Visual Studio 2015 installation. The error "This extension is not installable on any currently installed products" appears.
Workaround: To install the Klocwork plug-in on Visual Studio 2015, run the compatible VSIX installer from the command prompt:
<path-to-Visual-Studio-2015-compatible-VSIX-Installer> \VSIXInstaller.exe kw-vsplugin.win64.vsix
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\VSIXInstaller.exe"
C:\KW_Installer\23.1\kw-desktop-tools.23.1.0.61.win64\kw-vsplugin.win64.vsix
Limitations for VS Code
No stream defects are shown by default for the 2024.1 versions of the Perforce Static Analysis extension and kwcheck
If you are using the Perforce Static Analysis extension for VS Code 2024.1 and it is pointing to a 2024.1 version of kwcheck, no stream defects will be shown by default.
Workaround: From your project directory, run the following command:
kwcheck set show_streams_as_system=true
Do not add the build specification location to the build command. It will be automatically collected from the 'Build Specification Location' setting.
'Build Specification Generation Command' should not contain the buildspec location (-o <location>) when using the 'Automatically Update Build Specification' option.
Workaround: Specify the location with the Build Specification Location setting.
Build Specification Generation Command cannot contain single quoted arguments
If you need quoted parameters, use double quotes (same as a command prompt/terminal).
Workaround: Ensure your quoted parameters use double quotations.
Limitations for Klocwork Desktop
Analysis is not supported with any of the following configurations:
- When a project with symbolic links is configured with an external build specification that does not have the attribute "no-resolve". If a project uses symbolic links, the user must configure the project using an external build specification, and the external build specification must be created with the "no-resolve" option passed to kwinject.
- When a project with symbolic links is configured to use the Eclipse CDT toolchain. The Eclipse plug-in does not allow the user to set a "no-resolve" option.
- When a project contains a symbolic link to a directory. The plug-in supports symbolic links to files only.
Limitations for the IntelliJ IDEA plug-in
Difficult to connect to a project or stream with a long name
If you want to connect to a project or stream that has a long path or name, you may not see the full path of the project or stream because the Klocwork Project dropdown list might be too narrow to display the entire path and name.
- Open your IDE with Klocwork installed and then open a project. Doing so ensures the .idea folder gets generated in your project.
- Close your IDE.
- In your project's .idea folder, edit the 'misc.xml' file. Edit the following line by adding the project/stream name in the value parameter (The name appears with slashes included if it's a stream):
<option name="kwProject" value="project-name/stream-name" />
- Open your IDE. If you open your Klocwork settings, you can verify that you are connected to the correct project or stream.
Limitations for the CLion plug-in
"Requires plugin 'com.intellij.modules.cidr.lang' to be installed" warning appears after restarting CLion
After you restart version 2024.1 or 2024.2 of the CLion IDE, the warning "Requires plugin 'com.intellij.modules.cidr.lang' to be installed" appears.
Workaround:
By default, the Klocwork CLion plug-in is installed at the following location:
- Windows:
%appdata%\Roaming\JetBrains\CLion2024.x\plugins\klocworkclionplugin
- Linux:
~/.local/share/JetBrains/CLion2024.x/plugins/klocworkclionplugin
- In
klocworkclionplugin\lib
, open theklocworkclionplugin-<kw version>.jar
archive (for example, using 7-Zip). -
In 7-Zip, open the
META-INF\plugin.xml
file in a text editor. - To update the
META-INF\plugin.xml
file, replace the line<depends>com.intellij.modules.cidr.lang</depends>
with<depends optional="true">com.intellij.modules.cidr.lang</depends>
and save the file. - Close 7-Zip.
- Restart the CLion IDE. The warning will not appear.
CLion plug-in crashes for connected projects using older versions of the Klocwork desktop tools
The Klocwork Clion plug-in is only compatible with version 2023.4 or higher of the desktop tools.
Limitations for Klocwork extensibility
Delay in build monitoring of projects when using kwinject (Windows)
Synchronization of projects on Windows using kwinject are noticeably slower than running a native build.
Workarounds:
- For Klocwork 2024.3 and earlier: Before running kwinject, run the following command to set an environment variable:
_NO_DEBUG_HEAP=1
- For Klocwork 2024.4 and later: By default, this optimization on Windows is enabled. If there is a problem when using kwinject on Windows, you can set the environment variable:
KWTRACE_DISABLE_FAST_PIPE=1
C/C++ Path checker compilation makefile compatibility
The makefile generated by kwcreatechecker on Unix systems requires GNU make to build the checker. On Windows, the makefile generated by kwcreatechecker requires nmake to build the checker.
Workaround: None.
Custom checker help is not found when searching in offline help
As of 2022.1, it is not possible to search for custom checker help from the offline documentation accessed from the Validate Portal.
Workaround: You can search for custom checker help from the Configuration tab in the Validate Portal instead. From your project, click Configuration, select any taxonomy, and use the search box above the checker list. The help for any custom checker appears in the right pane.
Custom checker help cannot be displayed in some IDEs
Custom checker help does not display for Eclipse, Klocwork Desktop, IntelliJ IDEA, and Android Studio.
Workaround: You can view custom checker help by accessing it through the Configuration tab in the portal. From your project, click Configuration, select any taxonomy, and use the search box above the checker list. The help for any custom checker appears in the right pane.