SASGIS - SAS.Планета
View Issue Details
0001125SAS.Планета[All Projects] Багpublic20-01-2012 04:2510-10-2012 11:49
Tolik 
zed 
urgentcrashalways
closedfixed 
.Nightly 
120808120808 
0001125: BerkeleyDB: Fatal error при использовании одного кэша разными zmp или программами
В двух картах по ошибке используется одно и то же NameInCache.
Это geoportal.md.zmp и geoportal_orto.md.zmp
(я пока не исправил, чтобы можно было воспроизвести).

При включении такой карты и такого гибрида база данных корраптится.
1. на тайлах появляется ошибка ...address 00702FED in module SAS...
2. при попытке закрыть появляется окно List index out of bounds (4911)
3. программа закрываться не хочет, появляется ещё окно Exception in module SASPlanet 00302AF
4. потом Error -30973 DB_RUNRECOVERY Fatal error
5. после убивания программы 1 sdb повреждён, db_recovery вроде бы что-то там чинит, но это уже не важно.
Конечно, надо просто исправить ошибки в zmp. Но они не должны приводить к крэшу.
Может быть, с БД и не надо ничего делать, а надо ввести проверку уникальности NameInCache.
zmp, БД, доступ
Issue History
20-01-2012 04:25TolikNew Issue
20-01-2012 04:29TolikSeveritymajor => crash
20-01-2012 04:29TolikStatusnew => acknowledged
20-01-2012 04:29TolikAdditional Information Updatedbug_revision_view_page.php?rev_id=2561#r2561
20-01-2012 04:32TolikDescription Updatedbug_revision_view_page.php?rev_id=2563#r2563
20-01-2012 07:34vdemidovNote Added: 0005118
20-01-2012 11:11DJ VKNote Added: 0005124
20-01-2012 11:16TolikSummaryBerkeleyDB: Fatal error при использовании одного кэша разными zmp => BerkeleyDB: Fatal error при использовании одного кэша разными zmp или программами
20-01-2012 11:19zedFile Added: SASPlanet.7z
20-01-2012 11:23gpsMaxTag Attached: zmp
20-01-2012 11:23gpsMaxTag Attached: БД
20-01-2012 11:23gpsMaxTag Attached: доступ
20-01-2012 11:29zedNote Added: 0005125
20-01-2012 11:54vasketsovNote Added: 0005126
20-01-2012 11:57vdemidovNote Added: 0005127
20-01-2012 12:43zedNote Added: 0005128
20-01-2012 13:52TolikNote Added: 0005135
20-01-2012 17:26zedNote Added: 0005142
20-01-2012 17:26zedFile Deleted: SASPlanet.7z
20-01-2012 17:33zedStatusacknowledged => resolved
20-01-2012 17:33zedFixed in Version => 24xxxx
20-01-2012 17:33zedResolutionopen => fixed
20-01-2012 17:33zedAssigned To => zed
21-01-2012 05:25TolikDescription Updatedbug_revision_view_page.php?rev_id=2570#r2570
21-01-2012 05:27TolikNote Added: 0005146
21-01-2012 07:46TolikNote Edited: 0005146bug_revision_view_page.php?bugnote_id=5146#r2572
23-01-2012 08:34vdemidovTarget Version => 120808
23-01-2012 08:49vdemidovFixed in Version24xxxx => 120808
10-10-2012 11:49TolikStatusresolved => closed

Notes
(0005118)
vdemidov   
20-01-2012 07:34   
Нет. Тут нужно чинить работу с базами в первую очередь. А то пути можно по-разному прописать и простое сравнение фиг поможет. Да и с сетевой шары можно несколько копий с разных машин запустить.
(0005124)
DJ VK   
20-01-2012 11:11   
При использовании одного кэша двумя программами тоже проблемы. log то создается один на всех...
(0005125)
zed   
20-01-2012 11:29   
В аттаче exe, которая нормально работает если несколько копий программы одновременно юзают один кэш. НО одна программа не может юзать один и тот же кэш для разных карт, и тут по-моему ничего исправлять не надо (кроме zmp).
(0005126)
vasketsov   
20-01-2012 11:54   
>НО одна программа не может юзать один и тот же кэш для разных карт
А как определить "разность" карт, если скажем 2 разных "прокси" настроены на разные каналы скачки одного и того же сервиса в одну и ту же папку в сасе?
Покуда по гуиду идентифицируются zmp, как раз NameInCache идентифицирует карту, а в этом случае (несколько разных zmp на закачку с разных каналов) значение NameInCache будет для всех одинаковым.
(0005127)
vdemidov   
20-01-2012 11:57   
Увы с таким придется бороться. Но я считаю, что делать это нужно на уровне беркли дб, раз она такого не позволяет.
(0005128)
zed   
20-01-2012 12:43   
Тогда придётся делать глобальный пул для Env.
(0005135)
Tolik   
20-01-2012 13:52   
Это как?
Для копирования кэша с одного компа на другой придётся переносить глобальный лог?
При этом всё, что скачано на компе Б, накроется медным тазом?
(0005142)
zed   
20-01-2012 17:26   
>Это как?
Это я про внутреннюю кухню саса, не обращайте внимания.

В общем, пофиксил оба бага - теперь любое количество программ с любым количеством одинаковых zmp могут юзать один единственный кэш.
(0005146)
Tolik   
21-01-2012 05:27   
(edited on: 21-01-2012 07:46)
Круто! Работает (в версии 4860).

Удалил geoportal_orto.md.zmp из репозитория, т.к. он не даёт ничего нового.