EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB438649: Syntax error: '=~' unexpected operator/operand appears when starting MicroStrategy Intelligence Server 10.6 - 10.8 on Linux Operating Systems


Justin Parks

Principal Product Specialist • MicroStrategy


The following knowledge base article describes an issue with starting the MicroStrategy Intelligence Server 10.6 - 10.8 on Linux operating system. A workaround and solution are provided.

SYMPTOM
When attempting to start the Strategy Intelligence Server 10.6 - 10.8 on Linux operating systems using a non-standard shell, users may be presented with error messages similar to what is shown below:
 


/var/opt/MicroStrategy/bin/mstrexec-iserver: /var/opt/MicroStrategy/env/Limits.sh[16]: syntax error: '=~' unexpected operator/operand 
/var/opt/MicroStrategy/bin/mstrexec-iserver[39]: mstr_check_max_number_of_open_files: not found 
/var/opt/MicroStrategy/bin/mstrexec-iserver[40]: mstr_check_max_data_segment_size: not found 
/var/opt/MicroStrategy/bin/mstrexec-iserver[41]: mstr_check_max_share_mem_id: not found 
/var/opt/MicroStrategy/bin/mstrexec-iserver[42]: mstr_check_max_semaphore: not found 
/opt/MicroStrategy/bin/MSTRCtl Error 0xFFFFFFFF: Unexpected error occurred. 
/var/opt/MicroStrategy/bin/mstrexec-iserver: /var/opt/MicroStrategy/env/Limits.sh[16]: syntax error: '=~' unexpected operator/operand 
/var/opt/MicroStrategy/bin/mstrexec-iserver[39]: mstr_check_max_number_of_open_files: not found 
/var/opt/MicroStrategy/bin/mstrexec-iserver[40]: mstr_check_max_data_segment_size: not found 
/var/opt/MicroStrategy/bin/mstrexec-iserver[41]: mstr_check_max_share_mem_id: not found 
/var/opt/MicroStrategy/bin/mstrexec-iserver[42]: mstr_check_max_semaphore: not found

The service will still start up correctly.
CAUSE
Starting with Strategy 10.6, the logic in Limits.sh(<MSTR_HOME_PATH>/env) was changed to more accurately determine system limits to verify they are above minimum requirements. In some scenarios, the shell being used cannot handle the =~ character which is used for regular expression matching.
WORKAROUND
As a workaround, users can remove the =~ from the lines in Limits.sh as shown below:
 

if [[ "${CURRENT_LIMIT:?}" =~ +([0-9]) ]] && [ "${CURRENT_LIMIT:?}" -lt "${REQUIRED_LIMIT:?}" ]; then

to

if [[ "${CURRENT_LIMIT:?}" = +([0-9]) ]] && [ "${CURRENT_LIMIT:?}" -lt "${REQUIRED_LIMIT:?}" ]; then

This should be done in all 4 occurrences of the line.
ACTION
This issue is only present in Strategy feature release versions 10.6 - 10.8. The issue is not present in the platform release Strategy Secure Enterprise 10.4 and the logic is changed again in newer feature releases(10.9+). Users should stay on the platform release or upgrade to the latest feature release to avoid the issue.
  KB438649


Comment

0 comments

Details

Knowledge Article

Published:

September 25, 2017

Last Updated:

January 3, 2019