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

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

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

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

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

Удаление Документов С Readers-полями При Репликации

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43
Все привет. Вот столкнулся недавно с сабжем. Есть 2 реплики на серверах СерверА и СерверБ. Сервер Б оказался ошибочно не указан в полях Readers в некоторых документах. В один прекрасный момент (хз, почему, подозреваю, что почистили хистори), при репликации СерверА<->СерверБ из реплики на СервереБ все эти документы были удалены.
Вот помню, что так, вроде, и должно быть - но нигде толком не могу найти пруфа. Тыкните в доку, плиз, если не сложно.
ЗЫ. Нашел вот такую , но тут данный эффект упоминается как бы вскользь... А хотелось бы поподробнее.
ЗЗЫ. идет бурное обсуждение - в частности, на фига удалять док-т, если нет deletion stub'а...
 

rinsk

Lotus Team
12.11.2009
1 151
125
BIT
3
Все привет. Вот столкнулся недавно с сабжем. Есть 2 реплики на серверах СерверА и СерверБ. Сервер Б оказался ошибочно не указан в полях Readers в некоторых документах. В один прекрасный момент (хз, почему, подозреваю, что почистили хистори), при репликации СерверА<->СерверБ из реплики на СервереБ все эти документы были удалены.
Вот помню, что так, вроде, и должно быть - но нигде толком не могу найти пруфа. Тыкните в доку, плиз, если не сложно.
ЗЫ. Нашел вот такую , но тут данный эффект упоминается как бы вскользь... А хотелось бы поподробнее.
ЗЗЫ. идет бурное обсуждение - в частности, на фига удалять док-т, если нет deletion stub'а...
Да - правильно удалены. Что смущает?

И правильно что без стаба - представвь сервер С, который реплицируется и с А и с Б:)
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
в кратце так
сервер Б составляет список что он может реплицировать
так как документы в которых он должен был быть указан он не видит, то они в список не попадают
реплицирует доки и стабы
так как доки которые он не видит не попадают не в доки не в стабы они удаляются нафиг
 

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43
ToxaRat, спасибо, доходчиво объяснил :)
rinsk, меня вот на чем переклинило (только что сообразил). Если в одной реплике взвести галку "Remove documents not modified...", то Лотус устаревшие документы в ней, как известно, удаляет без stub' ов. Но при этом в других-то репликах эти документы замечательно живут. Вот я и решил чего-то, что с READERS-полями будет то же самое поведение репликатора...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Сервер как и пользователь - если чего-то не видит значит считает что этого нету :)
 
30.05.2006
1 345
12
BIT
0
реплицирует доки и стабы
так как доки которые он не видит не попадают не в доки не в стабы они удаляются нафиг
А вот фиг! Раз он из не видит, то и НЕ ДЕЛАЕТ с ними ничего.

Удаляются они в том случае, если сервер их видит, НО НЕ ДОЛЖЕН (судя по соседней реплике, где они закрыты полем Readers)
 
B

Baneslaer

А вот фиг! Раз он из не видит, то и НЕ ДЕЛАЕТ с ними ничего.

Удаляются они в том случае, если сервер их видит, НО НЕ ДОЛЖЕН (судя по соседней реплике, где они закрыты полем Readers)

Правильнее было бы написать, если их сервер ВИДЕЛ, но в результате отработки агента перестал видеть.
А то видит, но не должен - звучит как странно =)

- Ты суслика видишь?
- Нет!
- Я тоже нет, а он есть! (с)

>> ToxaRat

если бы так все работало, как ты написал, то тогда бы не было понятия частичной репликации доков =)
 
K

Kee_Keekkenen

холивар какой-то ни о чем.. слепого с хлухим..

при чем тут частичная репликация ?! она возможна при условии что оба сервера видят документ..

во всем этом есть один непроверенный момент, проверьте у кого есть несколько серверов..
например, с сервера А создается реплика на сервер Б, затем сервер Б исключается из ридер-доступа к части документов и производится репликация со стороны сервера А

вот тут интересный момент сервер А видит все документы, но будет ли репликация удалять на сервере Б, те документы, которые он (сервер Б) не должен видеть по изменении ридер-видимости, логично было бы предположить, что сервер А не должен их удалять.. удаление документов должно отрабатываться при репликации со стороны сервера Б (хотя как это будет работать, когда он их не должен видеть :()

проверьте кому не лень этот момент :)
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
если бы так все работало, как ты написал, то тогда бы не было понятия частичной репликации доков =)
->при чем тут частичная репликация ?! она возможна при условии что оба сервера видят документ..
+1
частичная репликация если так по правде сказать, несуществует, так как это всё равно полная репликация, но лишь изменение полей и их счетчика изменения - в общем я не вижу разницы между частичной и полной репликацией, на трафике тоже ничего не экономится

во всем этом есть один непроверенный момент, проверьте у кого есть несколько серверов..
например, с сервера А создается реплика на сервер Б, затем сервер Б исключается из ридер-доступа к части документов и производится репликация со стороны сервера А

вот тут интересный момент сервер А видит все документы, но будет ли репликация удалять на сервере Б, те документы, которые он (сервер Б) не должен видеть по изменении ридер-видимости, логично было бы предположить, что сервер А не должен их удалять.. удаление документов должно отрабатываться при репликации со стороны сервера Б (хотя как это будет работать, когда он их не должен видеть sad.gif)
да, можно такие глюки когда все доки переежали на новую реплику а со старой удалялись, но глюки были из-за истории репликации, сейчас всё это починили и удаляются только на реплике инициатора
 

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43
проверьте кому не лень этот момент
Все комбинации проверить, конечно, не удалось. При выставлении debug-параметров обнаружилось следующее:

Итак, СерверА и СерверБ, репликация СерверБ <- pull/push -> СерверА.
Создаем док-т на СерверБ (без Readers).
Проходит репликация (док-т пока в обеих репликах).
На СерверБ добавляем в Readers только СерверА.
Проходит репликация (док-т пока в обеих репликах - версии док-та синхронны, так что, видимо, удаления не будет).
Модифицируем док-т на СерверА.
Проходит репликация - док-т удаляется.
Логи с СерверБ:

REPLICA: *** Starting replication
of source database СерверА!!test\testbase.nsf to destination
test/testbase.nsf
Pulling test\testbase.nsf from СерверА test\testbase.nsf
...
REPLICA: ...Skipping note in Destination list (UNID
<UNID нашего дока> SrcNote ID 0x8FA;DestNote ID
0x8FE;Class 0x0001);
REPLICA: ... (con't) Note no longer matches Selective Replication formula

Ну и далее док-т, соббсно, удаляется.

Т.е., выходит, сам СерверБ видит, что у него (в Destination list ведь!) имеется док-т, не соответствующий условиям репликации, и удаляет его...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Т.е., выходит, сам СерверБ видит, что у него (в Destination list ведь!) имеется док-т, не соответствующий условиям репликации, и удаляет его...
что собственно я и писал

есть идея, что это связано со стабами- раз сервер не видит док, хоть он у него и имеется в базе, значит он считает, что это уже стаб, который своё время отжил и должен быть удален полностью (даже стаба не остается)
 

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43
В моем случае с полями Readers накосячили разрабы, а начальство кивает на меня - дескать ,вот у тебя с какого-то фига док-ты пропадают.
Поэтому очень хочется найти четкое описание данного явления либо в хелпе, либо в техноте какой-нить. Но пока, кроме косвенных упоминаний, ничего не нашел...:-( Покажу логи с дебагом, мож, поверят...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
в истории репликации должно быть указано сколько доков было удалено
 

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43
в истории репликации должно быть указано сколько доков было удалено
Дык в логах репликации есть сведения об удалении - но нет описания причины, по которой док-ты удалялись (если дебаг не включить). Итог - начальство делает вывод, что "документы пропали"... ;)
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Дык в логах репликации есть сведения об удалении - но нет описания причины, по которой док-ты удалялись (если дебаг не включить). Итог - начальство делает вывод, что "документы пропали"... ;)
ну ты как админ должна всего лишь рапортовать, что вот вам логи что доки были удалены, а причины к админам

иначе так можно опуститься до выявления какая конкретно строчка кода явилась причиной удаления, а этом уже за рамки админства выходит

проще сказать, кто-то что-то напортачил и доки были удалены
- почему удалены
- не знаю, разработчики не создали механизма логирования удаления и обьяснения причин

как то так ;)
 

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43
У нас в косяках разрабов, в основном, виноват админ, так уж сложилось :)
А если копнуть глобальнее, вся проблема сводится к старинной недоработке индусов - нельзя быстро и легко посмотреть, по какой причине и кем был удален док-т... Я знаю, что в новых версиях в User Activity добавили некоторую информацию, но, все равно, полной прозрачности нет...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
У нас в косяках разрабов, в основном, виноват админ, так уж сложилось :)
А если копнуть глобальнее, вся проблема сводится к старинной недоработке индусов - нельзя быстро и легко посмотреть, по какой причине и кем был удален док-т... Я знаю, что в новых версиях в User Activity добавили некоторую информацию, но, все равно, полной прозрачности нет...
Индусы то как виноваты?
тут свой обработчик всё прекрасно решает и лог можно создать и указать кто нажал и из какого вида и т.д.

а так получается в стандартном обработчике удаления выводить диалог: а какова причина удаления? ;) и так для каждого дока? ;)
 

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43
Тут свой обработчик всё прекрасно решает
Свой обработчик решает только для пользовательских удалений - а это не мой случай, т.к. док-ты удалила серверная задача. Вот поэтому и индусы...Могу хук, конечно, написать и отслеживать самостоятельно, но причину удаления серверной задачей и он не сможет объяснить. В идеале хочу видеть такие записи в логе:

Процесс Amgr удалил док-т <UNID> из базы <имя базы> по причине "Выполнение агента <Имя агента> в базе <имя базы>". (Да, для своих агентов я сам логи пишу - а если есть готовая система с закрытым кодом?)
Процесс Replica удалил док-т <UNID> из базы <имя базы> по причине "Note no longer matches Selective Replication formula"".

Я думаю, не я один хочу такое... ;)
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
ну для агентов такой обработчик тоже не проблема написать с полным логированием ;)
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
На СерверБ добавляем в Readers только СерверА.
Проходит репликация (док-т пока в обеих репликах - версии док-та синхронны, так что, видимо, удаления не будет).
Модифицируем док-т на СерверА.
Проходит репликация - док-т удаляется.
Не понял, как это "Модифицируем док-т на СерверА", если выше и так был установлен СерверА?
 
Мы в соцсетях:

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