nsxedge-testlb> get load-balancer <LB-UUID> status24304: Internal Error: Query LB Engine Failed.
nsxedge-testlb> get load-balancer <LB-UUID> diagnosisCheckingAction : checking systemResult : passedAction : checking crashResult : passedAction : checking daemon statusResult : passedAction : checking configurationResult : not_found_in_db: LbCurrentMsg <<<<<<<<<<<
<nsxedge-testlb>NSX 60279 LOAD-BALANCER [nsx@6876 comp="nsx-edge" subcomp="lb" s2comp="lb" level="ERROR" errorCode="EDG9999999"] [########-####-####-####-########b648] init_by_lua error: error loading module 'ruleset' from file '/config/vmware/edge/lb/etc/########-####-####-####-########b648/ruleset.lua':#012#011.../lb/etc/########-####-####-####-########b648/ruleset.lua:62: invalid escape sequence near '"rspirep ^Location:'#012stack traceback:#012#011[C]: at 0x735bd2bf0630#012#011[C]: in function 'require'#012#011init_by_lua:3: in main chunk
VMWare NSX
When a LB application rule gets configured with invalid character in the Action field, this new configuration does not takes effect and the LB would still use the old configuration. At this point there is no issues with LB packet processing. But when one of the following conditions occur, the old configuration would be cleared, and the new configuration with the invalid LB rule tries to load but fails:
While configuring LB application rule, make sure to use valid escape sequence.
Refer to the lua manual for the valid escape sequences:
https://www.lua.org/manual/5.1/manual.html#2.1
"Literal strings can be delimited by matching single or double quotes, and can contain the following C-like escape sequences:
'\a' (bell), '\b' (backspace), '\f' (form feed), '\n' (newline), '' (carriage return), '\t' (horizontal tab), '\v' (vertical tab), '\\' (backslash), '\"' (quotation mark [double quote]), and '\'' (apostrophe [single quote]).
Moreover, a backslash followed by a real newline results in a newline in the string. A character in a string can also be specified by its numerical value using the escape sequence \ddd, where ddd is a sequence of up to three decimal digits.
Note: If a numerical escape is to be followed by a digit, it must be expressed using exactly three digits.