Skip to content

2023

Lime CRM 2022.3 - Rysy - Patch 4

Description

This is the fourth patch release of 🇵🇱Lime CRM 2022.3 Rysy.

Patch Upgrade Instructions

If upgrading to this release from:

🚨 Known Issues

Event-handler service

A bug in the event-handler service. The work around for now, is to change so that you only publish events with dicts as payloads.

RabbitMQ expects Handle.exe

Newer versions of RabbitMQ, expects Handle.exe to be installed. RabbitMQ will work, even though it’s not installed, but it will log an error every 5 minutes in its log file with a message that looks like this [error] <0.753.0> Could not find handle.exe, please install from sysinternals. The next version of Lime CRM Server will fix this issue. If you are installing Rysy in the upcoming weeks, we recommend that you manually install Handle.exe by following the instructions here: https://docs.lime-crm.com/kb/10050.

🪲 Fixes

LDC

LDC upgraded to version 12.9.2816. Highlighted improvements are:

  • Fixes some memory leak issues

Read full release notes here: LDC 12.9.2816 Release Notes

Lime CRM Server Installation Fails to Install lime-webserver.exe

Issue

Lime CRM Server installation fails when trying to install lime-webserver.exe with 'InvalidRequirement' exception. Example from Lime CRM Server installation log:

11:52:51: INFO: Installing lime-webserver.exe service...
Traceback (most recent call last):
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\__init__.py", line 3039, in _dep_map
    return self.__dep_map
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\__init__.py", line 2835, in __getattr__
    raise AttributeError(attr)
AttributeError: _DistInfoDistribution__dep_map
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\_vendor\packaging\requirements.py", line 35, in __init__
    parsed = parse_requirement(requirement_string)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\_vendor\packaging\_parser.py", line 64, in parse_requirement
    return _parse_requirement(Tokenizer(source, rules=DEFAULT_RULES))
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\_vendor\packaging\_parser.py", line 82, in _parse_requirement
    url, specifier, marker = _parse_requirement_details(tokenizer)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\_vendor\packaging\_parser.py", line 120, in _parse_requirement_details
    specifier = _parse_specifier(tokenizer)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\_vendor\packaging\_parser.py", line 209, in _parse_specifier
    tokenizer.consume("WS")
  File "C:\Program Files\Python37\Lib\contextlib.py", line 119, in __exit__
    next(self.gen)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\_vendor\packaging\_tokenizer.py", line 185, in enclosing_tokens
    span_start=open_position,
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\_vendor\packaging\_tokenizer.py", line 166, in raise_syntax_error
    span=span,
pkg_resources.extern.packaging._tokenizer.ParserSyntaxError: Expected closing RIGHT_PARENTHESIS
    pytz (>dev)
         ~^
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "C:\Program Files\Python37\Lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Program Files\Python37\Lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\PROGRA~2\LUNDAL~1\Python3\Scripts\lime-webserver.exe\__main__.py", line 7, in <module>  File "c:\progra~2\lundal~1\python3\lib\site-packages\lime_webserver\__main__.py", line 67, in main
    lime_config.load_config('Web Server')
  File "c:\progra~2\lundal~1\python3\lib\site-packages\lime_config\__init__.py", line 90, in load_config
    current_cfg = get_config()
  File "c:\progra~2\lundal~1\python3\lib\site-packages\lime_config\__init__.py", line 81, in <lambda>    service_name, default_config, entry_points, plugin_entry_points),
  File "c:\progra~2\lundal~1\python3\lib\site-packages\lime_config\__init__.py", line 169, in build_default_config
    cfg = merge_configs_from_packages(cfg, entry_points)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\lime_config\__init__.py", line 253, in merge_configs_from_packages
    return reduce(merge_dicts, entry_points(), cfg)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\lime_config\__init__.py", line 44, in <genexpr>    return (ep.load() for ep in eps)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\__init__.py", line 2476, in load
    self.require(*args, **kwargs)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\__init__.py", line 2499, in require
    items = working_set.resolve(reqs, env, installer, extras=self.extras)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\__init__.py", line 820, in resolve
    new_requirements = dist.requires(req.extras)[::-1]
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\__init__.py", line 2755, in requires
    dm = self._dep_map
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\__init__.py", line 3041, in _dep_map
    self.__dep_map = self._compute_dependencies()
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\__init__.py", line 3051, in _compute_dependencies
    reqs.extend(parse_requirements(req))
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\__init__.py", line 3104, in __init__
    super(Requirement, self).__init__(requirement_string)
  File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources\_vendor\packaging\requirements.py", line 37, in __init__
    raise InvalidRequirement(str(e)) from e
pkg_resources.extern.packaging.requirements.InvalidRequirement: Expected closing RIGHT_PARENTHESIS
    pytz (>dev)
         ~^
Traceback (most recent call last):
  File "C:\Program Files (x86)\Lundalogik\LIME Pro Server\webserver\\install.py", line 1323, in <module>    sys.exit(main())
  File "C:\Program Files (x86)\Lundalogik\LIME Pro Server\webserver\\install.py", line 67, in main
    install()
  File "C:\Program Files (x86)\Lundalogik\LIME Pro Server\webserver\\install.py", line 104, in install
    install_webserver_service()
  File "C:\Program Files (x86)\Lundalogik\LIME Pro Server\webserver\\install.py", line 671, in install_webserver_service
    _install_service_from_exe('lime-webserver.exe')
  File "C:\Program Files (x86)\Lundalogik\LIME Pro Server\webserver\\install.py", line 988, in _install_service_from_exe
    subprocess.check_call(cmd)
  File "C:\Program Files\Python37\Lib\subprocess.py", line 363, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['C:\\PROGRA~2\\LUNDAL~1\\Python3\\Scripts\\lime-webserver.exe', '--username', 'lime-service-user', '--password', '*******', '--startup', 'auto', 'install']' returned non-zero exit status 1.
Installation failed...
Traceback (most recent call last):
  File "C:\Users\lime_support\AppData\Local\Temp\RarSFX0\\deploy.py", line 194, in <module>    sys.exit(main())
  File "C:\Users\lime_support\AppData\Local\Temp\RarSFX0\\deploy.py", line 35, in main
    raise e
  File "C:\Users\lime_support\AppData\Local\Temp\RarSFX0\\deploy.py", line 30, in main
    perform_install()
  File "C:\Users\lime_support\AppData\Local\Temp\RarSFX0\\deploy.py", line 165, in perform_install
    "Failed to call install script. Return code: {}".format(res))
Exception: Failed to call install script. Return code: 9999
Installation failed...

Why Does This Happen?

During the installation time of Lime CRM Server, a virtualenv is created. Unfortunately, it always installs the latest version of setuptools in the venv.

Old versions of setuptools accepted requirements to be listed in a non PEP440 compliant way. Below you can see two examples of invalid requirement definitions:

Invalid requirement definition for pytz:

"pytz>dev" # The version "dev" is not PEP440 compliant

Invalid requirement definition for pytest:

"pytest>=3.0.0<4.0.0" # A "," is missing between "3.0.0" and "<"

The definitions above are considered valid in any version of setuptools<67.0.0. (changelog), but will result in errors for all newer versions of setuptools.

Solution

Install latest release of Lime CRM Server: Lime CRM Server Release Notes

Lime CRM Services Fails to Start After Server or Solution Installation

Issue

After upgrading Lime CRM Server or installing a solution Lime CRM Services fails to start and nothing is written to the log.

To see what the issue is. The service needs to be started with the Command Prompt. In this example Lime CRM Web Server.

  1. Open a Command Prompt as administrator.
  2. Activate Lime CRM Server Python venv:
    "C:\Program Files (x86)\Lundalogik\Python3\Scripts\activate"
    
  3. Run:
    lime-webserver
    

The exception 'InvalidRequirement' is thrown. Here's an example:

Traceback (most recent call last):
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_init_.py”, line 3039, in _dep_map
return self._dep_map
File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_init.py", line 2835, in getattr
raise AttributeError(attr)
AttributeError: _DistInfoDistribution__dep_map

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_vendor\packaging\requirements.py”, line 35, in init
parsed = parse_requirement(requirement_string)
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_vendor\packaging_parser.py”, line 64, in parse_requirement
return _parse_requirement(Tokenizer(source, rules=DEFAULT_RULES))
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_vendor\packaging_parser.py”, line 82, in _parse_requirement
url, specifier, marker = _parse_requirement_details(tokenizer)
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_vendor\packaging_parser.py”, line 120, in _parse_requirement_details
specifier = _parse_specifier(tokenizer)
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_vendor\packaging_parser.py”, line 209, in _parse_specifier
tokenizer.consume(“WS”)
File “C:\Program Files\Python37\Lib\contextlib.py”, line 119, in exit
next(self.gen)
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_vendor\packaging_tokenizer.py”, line 185, in enclosing_tokens
span_start=open_position,
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_vendor\packaging_tokenizer.py”, line 166, in raise_syntax_error
span=span,
pkg_resources.extern.packaging._tokenizer.ParserSyntaxError: Expected closing RIGHT_PARENTHESIS
pytest (>=3.0.0<4.0.0) ; extra == ‘develop’
~~~~~~~~^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “C:\Program Files\Python37\Lib\runpy.py”, line 193, in run_module_as_main
“main”, mod_spec)
File “C:\Program Files\Python37\Lib\runpy.py”, line 85, in run_code
exec(code, run_globals)
File "C:\PROGRA~2\LUNDAL~1\Python3\Scripts\lime-webserver-debug.exe_main.py", line 7, in
File "c:\progra~2\lundal~1\python3\lib\site-packages\lime_webserver_main.py", line 18, in run_appserver_in_debug_mode
config = lime_config.load_config(“Web Server”)
File “c:\progra~2\lundal~1\python3\lib\site-packages\elasticapm\traces.py”, line 1066, in decorated
return func(*args, **kwds)
File “c:\progra~2\lundal~1\python3\lib\site-packages\lime_config_init_.py”, line 103, in load_config
current_cfg = get_config()
File “c:\progra~2\lundal~1\python3\lib\site-packages\lime_config_init_.py”, line 92, in
service_name, default_config, entry_points, plugin_entry_points
File “c:\progra~2\lundal~1\python3\lib\site-packages\lime_config_init_.py”, line 257, in build_default_config
cfg = merge_configs_from_plugins(cfg, plugin_entry_points)
File “c:\progra~2\lundal~1\python3\lib\site-packages\lime_config_init_.py”, line 346, in merge_configs_from_plugins
for plugin_cfg in plugin_configs:
File “c:\progra~2\lundal~1\python3\lib\site-packages\lime_config_init_.py”, line 43, in
return (ep.resolve() for ep in eps)
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_init_.py”, line 2483, in resolve
module = import(self.module_name, fromlist=[‘name’], level=0)
File “c:\progra~2\lundal~1\python3\lib\site-packages\limepkg_engage_init_.py”, line 5, in
from .variables import PACKAGE_VERSION, PACKAGE_IDENTIFIER
File “c:\progra~2\lundal~1\python3\lib\site-packages\limepkg_engage\variables.py”, line 6, in
PACKAGE_VERSION = pkg_resources.require(PACKAGE_IDENTIFIER)[0].version
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_init_.py”, line 956, in require
needed = self.resolve(parse_requirements(requirements))
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_init_.py”, line 820, in resolve
new_requirements = dist.requires(req.extras)[::-1]
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_init_.py”, line 2755, in requires
dm = self.dep_map
File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_init.py", line 3041, in _dep_map
self.__dep_map = self.compute_dependencies()
File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_init.py", line 3051, in compute_dependencies
reqs.extend(parse_requirements(req))
File "c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_init.py", line 3104, in init
super(Requirement, self).init(requirement_string)
File “c:\progra~2\lundal~1\python3\lib\site-packages\pkg_resources_vendor\packaging\requirements.py”, line 37, in init
raise InvalidRequirement(str(e)) from e
pkg_resources.extern.packaging.requirements.InvalidRequirement: Expected closing RIGHT_PARENTHESIS
pytest (>=3.0.0<4.0.0) ; extra == ‘develop’
~~~~~~~~^

Why does this happen?

Old versions of setuptools accepted requirements to be listed in a non PEP440 compliant way. Below you can see two examples of invalid requirement definitions:

Invalid requirement definition for pytz:

"pytz>dev" # The version "dev" is not PEP440 compliant

Invalid requirement definition for pytest:

"pytest>=3.0.0<4.0.0" # A "," is missing between "3.0.0" and "<"

The definitions above are considered valid in any version of setuptools<67.0.0. (changelog), but will result in errors for all newer versions of setuptools.

Solution

Solution to this issue is to downgrade setuptools to version lower than 67.0.0 in the Lime CRM Python venv.

  1. Open a Command Prompt as administrator.
  2. Activate Lime CRM Server Python venv:
    "C:\Program Files (x86)\Lundalogik\Python3\Scripts\activate"
    
  3. Downgrade setuptools:
    python -m pip install "setuptools<67.0.0"
    
  4. Start all Lime CRM Services.

Lime CRM Desktop Client 11.1.2808

Product Lime CRM Desktop Client Version 11.1.2808 Date published 2023-02-24 Platform Windows Availability Manual installation and Automatic Updates.

Fixes

  • Remove DNS-based discovery of Lime CRM due to security and stability issues.
  • Postpone record validation until batch is executed to include any changes between adding and actual update.
  • Improved robustness for missing localization-table.
  • Extended timeout handling to better support slow DNS and TLS-negotiation by adding 15s to general timeout and using specified timeout for actual IO.
  • Worked around issue with NewMail.Send due to bugs in recent update to MS Outlook.
  • Refactored text filter and quick search to support keyboard navigation.
  • Enforce bitness and activation type for MS Outlook
  • Improved robustness for errors in model, ie. invalid record references.
  • Added mitigation for PrankCall-bug for unsaved changes.
  • Propagate all status codes for Record.Document
  • Added client-side workaround for “update on relation change” behind feature flag.
  • Detect relation changes via relationsingle
  • Switched to invalidation to delay updates for lists.
  • Extended logging for problems with MS Outlook.
  • Fixed race-conditions in lbs.apploader.deprecateApp to handle situations where web components load faster than LBS-apps.

Lime CRM Desktop Client 11.1.2823

Product Lime CRM Desktop Client Version 11.1.2823 Date published 2023-03-07 Platform Windows Availability Manual installation and Automatic Updates.

Fixes

  • Moved validation with events to separate step for batch and async usage.
  • Removed broadcast message without listeners.
  • Fixed stability issue for adding records with relations async, seen for campain manager.
  • Fixed race-condition for injected script (window.external.run not working) in onload-event.
  • Fixed debugger warning due to multiple callbacks for shared environment.
  • Graceful recovery after WebView2 Runtime upgrade while running.
  • Disable sync for message opened from document.
  • Fixed potential 100% CPU hang for invalid API usage from WebView2.

Lime CRM Desktop Client 11.1.2824

Product Lime CRM Desktop Client Version 11.1.2824 Date published 2023-03-07 Platform Windows Availability Manual installation and Automatic Updates.

Fixes

  • Moved validation with events to separate step for batch and async usage.
  • Removed broadcast message without listeners.
  • Fixed stability issue for adding records with relations async, seen for campain manager.
  • Fixed race-condition for injected script (window.external.run not working) in onload-event.
  • Fixed debugger warning due to multiple callbacks for shared environment.
  • Graceful recovery after WebView2 Runtime upgrade while running.
  • Disable sync for message opened from document.
  • Fixed potential 100% CPU hang for invalid API usage from WebView2.

LDC 12.9.2784

Service Lundalogik Data Component (LDC) Version 12.9.2784 Date published 2023-02-13 Platform Windows Download LDC 12.9.2784 Included in Lime CRM Server 2022.3.1059

This version of LDC will make Lime CRM Server more secure and resolve some bugs.

Technical Details

  • Updated lifetime handling to reduce logging when Redis is not configured.
  • Log and forward root-cause internally and coerce login error only for external API.
  • Fixed bug in time-limited binary backoff that result in eternal busy-wait.

LDC 12.9.2806

Service Lundalogik Data Component (LDC) Version 12.9.2806 Date published 2023-02-24 Platform Windows Download LDC 12.9.2806 Included in Lime CRM Server 2022.3.1066

This version of LDC will make Lime CRM Server more secure and resolve some bugs.

Technical Details

  • Fixed HANDLE-leak for Windows-login
  • Removed unnecessary caching
  • Added default settings for COM+ recycling.
  • Improved logging and error reporting.
  • Improved robustness for error handling.
  • Fixes buffer overrun and memory leak in error reporting.
  • Include details for external errors.
  • Handle empty XML documents.
  • Worked around problems with session handling in LISA.
  • Fixed more issues related to 100% CPU.