Limitations

This section contains limitations added in both this release and in previous releases.

Limitations for installation, upgrade, and deployment

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.

Using Debian 10.7 and running the Klocwork Desktop Analysis (kwgcheck)

Run this command to install the missing libraries:

sudo apt-get install --reinstall libgtk2.0-0

dbvalidate cleanup utility can result in data loss

Since 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.

On Windows, integration build results fail to load to the Server

On Windows, when installing Klocwork, do not choose the Custom setup type and select the Klocwork Servers Only option, because integration build results will fail to load to the Server.

Workaround: Install Klocwork and choose either the Complete setup type that installs all program features. Or, choose the Custom setup type and select the Klocwork Servers and Built Tools option.

Project build hangs on upload

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.

Workaround: To resolve this problem, we added a conditional host resolution based on a parameter in a specified configuration file. If you set it to 'false', then you can specify FQDN for the URL of the remote server. To set host resolution to 'false', you need to create a configuration file on the client side with the following address:
{client_tools_install_folder}\config\client_config.xml
The file must have the following structure:
<?xml version="1.0" encoding="UTF-8"?><params>   <host resolveHost="false" /></params>

64-bit REPCXX Memory Limitations

With 2020.4 SR1, 64-bit REPCXX (our classic C/C++ analysis engine) by default is capped at using 16 Gigabytes (GB) of memory. An attempt to exceed this limitation will result in the REPCXX process being terminated with exit code 121 and the following message:
"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'.

As confirmation of the memory limit increase, the following message will be output to the build log when a REPCXX process is initiated:
"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:java -jar /<path-to-server>/class/dbvalidate.jar --projects-root /<path-to-projects-root>/projects_root --project a

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

Note: Use of the 'C:\Checkout\PRs\PR-59822\test.cpp' format should be avoided on all platforms as it is not supported.

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.

Android N Java analysis with Jack toolchain

When building Android N using the Jack compiler, some jar files required for Klocwork Java analysis are not generated during the build process. Therefore, kwbuildproject encounters "Unresolved import", "Unresolved method", and "Unresolved name" semantic errors that affect the accuracy of the analysis results.

Workaround: Open a ticket with Klocwork customer support. Customer support can provide a script that can generate the jar files required for analysis. Run the script after running the kwinject command and before running the kwbuildproject command.

Limitations for C# analysis

The following features are not supported for C# integration projects:

Feature Details
Build integration
Validate

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 Java analysis

In release 2024.2, the documentation has been updated to reflect the use of kwciagent run and kwcheck run with Java. In particular, differential analysis with kwciagent for a specified subset of files is not supported for Java projects.

Limitations for Python

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

In release 2023.2, the following checkers listed in the Python taxonomy are not supported. They are disabled by default and can be enabled manually:

E0001

F0002

I0020

W4902

E0013

F0010

I0021

W4903

E0014

F0011

I0022

W4904

E0015

I0001

I0023

W4905

E0705

I0010

W0246

 

E1143

I0011

W3101

 

F0001

I0013

W4901

 

Limitations for Validate

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.

In Microsoft Edge, some items may not be clickable

Due to a Microsoft Edge issue, some items in the portal may not be clickable.

Workaround: Refresh the page.

The 'Cert C Recommendations' section of the Security Report is omitted.

Workaround: You can generate the compliance report for this taxonomy if needed. Contact support for more information.

Cannot run Klocwork Server and Validate Windows services at the same time

On Windows, if you install either of the Validate or Klocwork Server installations, and set the Windows services to start automatically, then choose to additionally install the other installation, the services will not start. You can run the Windows services for only one of these installations at a time.

Additionally, make sure if you're installing both installations, their web ports and database ports must be different.

Workaround: If you want to run both simultaneously, you must start the servers for at least one installation by using the command line.

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.

An error occurs when attempting to 'Edit All' issues in a project with CI Builds only

When citing issues in Validate from the project's issue list, the following error occurs if you attempt to use Edit All to manage your issue list if your project only contains CI Builds:

Database error occurred: There is no valid build for the project

Workaround: Select the issues you want to cite and use Edit Selected.

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:

  1. Install the 2024.2 authtools package or a later version.

  2. 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).

For the Microsoft Visual Studio extension, minor performance degradation when working with server issues if connection to server is lost

A lost server connection causes a delay of up to three seconds when working with server issues, for example, when opening or citing a server issue.

Workaround: Work with local issues only by clicking the "Show local issues only" button.

F1 help does not work when you try to open help for an issue from the Klocwork Issues window in Visual Studio for the Klocwork extension for Visual Studio

If you click an issue in the Klocwork Issues window and try to open the help by pressing F1, the shortcut opens the incorrect help in the Help Viewer.

Workaround: Open the help for the checker by right-clicking on the issue and select View Checker Documentation from the Manage <checker name> Checker menu.

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 thetab 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

Cannot authenticate a connected desktop project from the VS Code extension

To use a connected desktop project with the VS Code extension in release 2024.2, you must authenticate manually from outside the extension.

Workaround: Run the following command:

kwauth --url http(s)://<ip-address>:<port-number> --insecure

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 Eclipse plug-in

Eclipse 4.16 requires additional software for Klocwork Eclipse plug-in to run

If you are using the 4.16 version of Eclipse, you must install the following software in order to run the Klocwork Eclipse plug-in:
  • Eclipse CDT using Java 11; or, post-installation, update the eclipse.ini file to point to a valid Java 11 installation.
  • Eclipse Java Development Tools by using the Help --> Install New Software command.

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.

Workaround: You can fix this problem by doing the following:
  1. Open your IDE with Klocwork installed and then open a project. Doing so ensures the .idea folder gets generated in your project.
  2. Close your IDE.
  3. 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" />
  4. Open your IDE. If you open your Klocwork settings, you can verify that you are connected to the correct project or stream.

WARN: Do not use URL connection as JarURLConnection' message in IntelliJ IDEA log

If you see this warning in IntelliJ IDEA in your idea.log, you can safely ignore it.

Limitations for the CLion plug-in

CLion plug-in crashes for connected projects using older versions of the Klocwork desktop tools

The 2023.4 version of the Klocwork Clion plug-in is only compatible with the latest version (2023.4) of the desktop tools.

'java.sql.SQLException: SQLite.Exception: no such column: in_connected' error

This error occurs if you are trying to use a 2022.1 or newer version of the Klocwork Desktop plug-in for CLion with a 2021.4 or older version of the Klocwork tools.
 
Workaround: If you are still using an older version (2021.4 or older) of the Klocwork tools, do not upgrade the Klocwork CLion plug-in to 2022.1 or newer to avoid this error.

Limitations for Klocwork extensibility

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.

Checker limitations on Windows

kwcreatechecker.exe creates 64-bit checkers by default. If you want to create 32-bit checkers (that is, checkers compatible with a pre-2020.4 version of Klocwork) you must use the --force-32bit option.

If you use pre-2020.4 KAST / AST checkers or pre-2020.3 PATH checkers, you must add the --force-32bit option to all builds (kwbuildproject, kwcheck, and so on).

If you use pre-2020.4 KAST / AST checkers or pre-2020.3 PATH checkers and want to create new checkers, you must do one of the following:

  • Rebuild all your old checkers by using the 2020.4 version of kwcreatechecker.exe or by using a 64-bit compiler.
  • Build your new checkers in a pre-2020.4 version.
You cannot mix 32-bit and 64-bit checkers:
  • If you build any 32-bit checkers, you can only use them in the 2020.4 Visual Studio plug-in if the Force 32-bit Analysis option is enabled.
  • If you build any 64-bit checkers, you can only use them in the 2020.4 Visual Studio plug-in if the "Force 32-bit" Analysis option is disabled.
  • If you build any 32-bit checkers, you cannot use them in Eclipse-based plug-ins.
  • When using 64-bit path checkers, you will get the following warning (note that it is safe to ignore this warning):
    kwcc: Warning: cannot open plugin library 'c:\Klocwork Server\plugins\ix86-pc-win32\&lt;checker>.dll': The specified module could not be found.

Checker limitations on Linux

32-bit backward compatibility for custom checkers is no longer supported and the option '--force-32bit' is deprecated. You must rebuild all of your old checkers by using a 64-bit compiler. Contact support for more information.

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.