Openlog - Ахтунг!

akat

Well-Known Member
Lotus team
16.06.2010
243
7
#1
Вообщем пол года "боролись", пытаясь найти причину, казалось бы спонтанных, падений сервера.
Помог апгрейд сервера на 9-ку. При этом на консоле он стал выдавать:

[09A8:012D-033C] *** You are using LSI_INFO in LotusScript which is an undocumented feature only used in a controlled environment, and is unsupported
[09A8:012D-033C] ********************
[09A8:012D-033C] *** LSI_INFO(14) was found and is known to cause memory corruption, leading to server instability. Please remove all uses of this from your application.
[09A8:012D-033C] ********************
[09A8:012D-033C] **************************
[09A8:012D-033C] *** Agent : DoSubOnServer
[09A8:012D-033C] *** DB : db\base.nsf
[09A8:012D-033C] **************************

Далее, к первоисточнику:
http://www.openntf.org/internal/home.nsf/d...6257B2F0049805A

Гуглим еще:
http://www-10.lotus.com/ldd/nd6forum.nsf/C...0e?OpenDocument
(проблема вскрылась еще в 2006, в марте...)
http://www.billbuchan.com/imported-2009111...threadinfo.html

Что делать?
Установить NoLSIStackTrace=True в инициализации либы OpenLogFunctions (версии 1.5), и везде, где исползуется либа в ваших базах.

Минусы: теряем стек вызовов в поле Stack Trace лога. Но не смертельно и лучше чем спонтанные краши!

Ситуация краша возникает, когда логируется от имени сервера, например серверным агентом. Скорее, когда выполняется интенсивное логирование от имени сервера.
Если логируется в нотес-клиентах у юзеров, то проблем не возникает.
 

akat

Well-Known Member
Lotus team
16.06.2010
243
7
#3
Пасиб, за наводку)
1. Странно, но именно под 9-кой краши. На 8.5.х релизах краши тоже были.
Execute явно не используется. На 100% не уверен, т.к. много чужого кода.

2. Это всего лишь отключить console logging.
 

akat

Well-Known Member
Lotus team
16.06.2010
243
7
#5
Примерно так:
LotusScript.1100.AgentDBPath = db1.nsf
LotusScript.1100.AgentName = SystemShedule
LotusScript.1100.LSI_INFO_COUNT = 12
LotusScript.9D0.AgentDBPath = db2.nsf
LotusScript.9D0.AgentName = SystemShedule
LotusScript.9D0.LSI_INFO_COUNT = 14