Notes/Domino Fix List
SPR # RLBC6CNRTNFixed in 7.0.2; 6.5.6 releaseSecurity fix



Product Area: Designer; Server Technical Area: Design Platform: Cross Platform

Lotus Customer Support APAR: LO10947

SPR# RLBC6CNRTN - Fixed a Domino Server crash which occurred when using the @ismember function with large concatenated lists in a view selection formula or column formula.

Technote Number: 1181169

Problem:
This issue was reported to Quality Engineering in SPR# JMAL5WGQZ7, and has been
fixed for the AIX operating system in Domino 6.5.5 and 7.0. Two notes.ini
parameters must be used so that an error will be returned by the formula when
its calculation complexity is taxing the stack.

The parameter NOTES_STACKLOWPCT can be set to a value from 1 to 99, indicating
the percent of the stack to reserve prior to issuing the warning. The default
is 1.

In addition to the above parameter you must turn on the check functionality by
using another INI parameter which is dependent on the Domino release.

For Domino 6.x the notes.ini parameter is NOTES_STACKLOWCHK=1.

For Domino 7.0 and later, the notes.ini parameter is FORMULA_STACKLOWCHK=1.


For the Solaris operating system the issue is tracked in SPR# RLBC6CNRTN, and
was fixed in Domino 7.0.2.

Excerpt from the Lotus Noes and Lotus Domino Release 7.0.2 MR fix list
(available at http://www.ibm.com/developerworks/lotus):

Design
SPR# RLBC6CNRTN - Fixed a Domino Server crash which occurred when using the
@IsMember function with large concatenated lists in a view selection formula or
column formula.


Workaround:
In cases where the function is dealing with a static (hard coded) list the
issue can be worked around by breaking the list into 2 or more smaller lists.
There is also a performance issue known with large hard coded lists, so this
workaround may also increase performance.

For example, the formula below causes a crash. To work around it:

Change:

SELECT Form = "Main" & @IsMember(List1; List2)

to:

SELECT Form = "Main" & @If (@IsMember(List1; <1st half of the contents of
List2>) | @IsMember(List1; <2nd half of the contents of List2>);@True;@False)

If the issue still persists then break up the check further. Note: If the
first parameter of the @IsMembers call is lengthy it is possible that it is the
cause of the issue.


Supporting Information
There is another issue which may share a root cause with the issue described
above. When a particularly lengthy Mail Rule is executed by the Router and
results in a server crash, you may notice the following error message on the
server console prior to the crash:

"The formula has exceeded the maximum allowable memory usage".

The notes.ini fix described in this document should be used in an attempt to
resolve this issue. If it does not resolve the issue then the rule should be
broken up into shorter comparison. This crash scenario has been reported to
Quality Engineering in SPR # SKAI6JUKE5.
More >



Last Modified on 12/10/2013

Go back