• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Падает Сервер При Выполнении Агента На Сервере

dimat

Well-known member
31.07.2008
508
0
BIT
0
Всем привет!
Если в процессе выполнения агента случается какая то ошибка(опытным путем выяснено: падает при любой ошибке. Например если NotesDocument=Nothing и к нему идет обращение или при ошибке Type mismatch) сервер сразу же падает.
Ситуация имеет место быть на сервере 8.5.1 и на сервере 8.5.3 + все фикс паки и хот фиксы.
Грешит этим только один агент в одной бд. Все остальные ведут себя как положено - выполняют действия согласно обработчику ошибок, если таковые имеются.

Как исправить проблему?
 
K

Kee_Keekkenen

без кода трудно себе представить оное..
 
D

divankin

Скорей всего проблема в коде обработчика ошибки. Так что все равно нужен код.
Ну или отключите любую обработку ошибок, закоментите все On Error и посмотрите будет ли падать.
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Например был агент вида:

Код:
dim view as notesview
dim doc as notesdocument
set view=db.getview("Viewname") 'db заведомо не nothing
set doc=view.getdocumentbykey(key,true) 'doc заведомо будет nothing (проверено)
print doc.getitemvalue("itemname")(0) 'На этой строке падает сервер (проверено)

при следущем варианте сервер не падает
Код:
dim view as notesview
dim doc as notesdocument
set view=db.getview("Viewname") 'db заведомо не nothing
set doc=view.getdocumentbykey(key,true) 'doc заведомо будет nothing (проверено)
if not doc is nothing then
print doc.getitemvalue("itemname")(0)
end if

в этом коде агент должен завершиться и написать в коносль текст ошибки и строку, однако сервер опять лежит

Код:
dim view as notesview
on error goto errh
dim doc as notesdocument
set view=db.getview("Viewname") 'db заведомо не nothing
set doc=view.getdocumentbykey(key,true) 'doc заведомо будет nothing (проверено)
print doc.getitemvalue("itemname")(0) 'На этой строке падает сервер (проверено)

exitsub:
exit sub

errh:
Print "Error: " & error & " line: " & erl
resume exitsub
 
K

Kee_Keekkenen

раз пошла такая пьянка, то создай нового агента и перенеси в него код, а старый удали..
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
nsd.exe на своём месте, не переносили/переименовывали?
 
D

divankin

Проблема для любых серверных агентов в этой БД?
Если вообще убрать весь код и добавить что-нибудь совсем безобидное типа деления на ноль, то проблема остается?
Или для проблемы нужно и GetView, и GetDocumentByKey?
Откуда берется объект db, это просто CurrentDatabase или что? Он получает значение в этой же процедуре?
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Проблема для любых серверных агентов в этой БД?
Только для этого агента
Если вообще убрать весь код и добавить что-нибудь совсем безобидное типа деления на ноль, то проблема остается?
Или для проблемы нужно и GetView, и GetDocumentByKey?
Остается, выше написал, что такая хрень происходит при любых ошибках
Откуда берется объект db, это просто CurrentDatabase или что? Он получает значение в этой же процедуре?
db - это текущая бд
 

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43
А в этом агенте (или в используемых им библиотеках) не используются ли какие-нить ф-ции из API?
 

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43
Чего-то я не понял. Создаем нового агента с новым именем, содержащего некий произвольный код - он падает? Изменяем произвольный код на требуемый - падает?

У мну такое ощущение, что база, в которой создается агент, битая... А если в другую базу его перенести (с соответствующим изменением кода, ессно)?
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
nsd file должен создаваться в data\IBM_TECHNICAL_SUPPORT .
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!