SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002689SAS.Планета[All Projects] Багpublic20-04-2015 13:1929-07-2015 13:53
Reporteraflexus 
Assigned Tovdemidov 
PrioritynormalSeveritytweakReproducibilityrandom
StatusclosedResolutionduplicate 
PlatformWindowsOS7OS VersionUltimate
Product Version.Nightly 
Target VersionFixed in Version 
Summary0002689: Ошибка при закрытии
DescriptionС какой-то периодичностью выскакивает ошибка при закрытии программы. Лог приаттачил.
TagsNo tags attached.
Attached Files? file icon SASPlanet.Debug.elf [^] (155,235 bytes) 20-04-2015 13:19
? file icon SASPlanet.Debug_20150422_220108.elf [^] (219,380 bytes) 22-04-2015 19:01
? file icon SASPlanet.Debug_20150422_220342.elf [^] (67,761 bytes) 22-04-2015 19:05
? file icon SASPlanet.Debug_20150422_220431.elf [^] (149,085 bytes) 22-04-2015 19:05
7z file icon SAS.Planet.logs_20150423_003052.7z [^] (10,377 bytes) 22-04-2015 21:32
7z file icon SAS.Planet.logs_20150423_003153.7z [^] (10,293 bytes) 22-04-2015 21:32
? file icon DB_CONFIG [^] (202 bytes) 22-04-2015 21:34 [Show Content]

- Relationships
duplicate of 0002050confirmed Утечка памяти, если программа закрывается раньше чем запустились все потоки 
related to 0002116confirmed Утечка памяти в дебажной версии при выходе из программы 

-  Notes
(0015618)
vdemidov (manager)
20-04-2015 13:52

Учитывая наличие TGlobalBerkeleyDBHelper в потерянных объектах, рискну предположить, что это подвисшее обращение к базе беркли осталось висеть.
Проверяйте свой кэш.
(0015624)
zed (manager)
20-04-2015 17:21

>Учитывая наличие TGlobalBerkeleyDBHelper
Это ни о чём не говорит. Вот если бы там были TBerkeleyDBEnv или TBerkeleyDB, тогда другое дело. А так, тупо GlobalState не освободился и все порождённые им интерфейсы остались в памяти. Может там EmbeddedWB подвис - в отличии от всех остальных объектов, у него отсылка к Finalization и вот там могло случиться что-нибудь нехорошее.
(0015629)
vdemidov (manager)
21-04-2015 06:53

> А так, тупо GlobalState не освободился и все порождённые им интерфейсы остались в памяти.
Не, такого не может быть так как GlobalState удаляется простым Free в основном потоке.
Это подвис поток, который держал ссылки на все эти объекты. Так что EmbeddedWB не подходит.
(0015677)
aflexus (reporter)
22-04-2015 19:08

Повторяется только на кеше беркли. На всех кешах беркли, что у меня есть. Некоторые из них проверил - целые. Поэтому видимо дело не в этом.
(0015678)
zed (manager)
22-04-2015 19:10

> Некоторые из них проверил
Проверять надо тот, который открывается в программе (какую карту просматриваете).
(0015679)
aflexus (reporter)
22-04-2015 19:17

zed, вы не поняли, открывал разные карты. Все, которые в беркли, при закрытии вылетали с той или иной периодичностью. Эти же кеши проверял sdb_util - все ок.
(0015680)
zed (manager)
22-04-2015 20:27

Попробуйте вот на этой версии: https://yadi.sk/d/5OxBOY_ZgB4VT

Когда баг воспроизведётся, скиньте мне ещё sdb.log (появится рядом с exe) и конфиги кэшей которые открывались (файлы DB_CONFIG из папки env в кэше).
(0015681)
zed (manager)
22-04-2015 20:34

О, там оказывается есть один лог с AV, а не только утечки.

И ещё, судя по логам, там очень маленькое время UpTime, а по этому поводу у нас уже был тикет.
(0015682)
aflexus (reporter)
22-04-2015 21:36

Логи и DB_CONFIG (он везде одинаковый) добавил. По всей видимости, действительно вылет почти всегда происходит, если закрыть программу сразу после запуска.
(0015683)
vdemidov (manager)
23-04-2015 07:22

Похоже это полный дубликат бага 0002050
С авешкой тоже можно побороться, но честно говоря лень. Можно во всех функциях которые вызываются в отдельном потоке (OnPrepareTileMatrix и тд.) в начале запоминать интерфейсную ссылку на себя в локальной переменной. Это будет гарантировать что деструктор не вызовется до завершения функции.
Еще можно передавать в конструктор TBackgroundTask интерфейсную ссылку, но сохранять ее в указателе, что бы она работала как слабая ссылка, и вызывать _AddRef в методе TBackgroundTask.Execute перед вызовом рабочей функции и _Release после.

- Users who viewed this issue
User List Anonymous (2256x), zed (2x), aflexus (1x), vdemidov (3x)
Total Views 2262
Last View 20-04-2024 01:54

- Issue History
Date Modified Username Field Change
20-04-2015 13:19 aflexus New Issue
20-04-2015 13:19 aflexus File Added: SASPlanet.Debug.elf
20-04-2015 13:52 vdemidov Note Added: 0015618
20-04-2015 17:21 zed Note Added: 0015624
21-04-2015 06:53 vdemidov Note Added: 0015629
22-04-2015 19:01 aflexus File Added: SASPlanet.Debug_20150422_220108.elf
22-04-2015 19:05 aflexus File Added: SASPlanet.Debug_20150422_220342.elf
22-04-2015 19:05 aflexus File Added: SASPlanet.Debug_20150422_220431.elf
22-04-2015 19:08 aflexus Note Added: 0015677
22-04-2015 19:10 zed Note Added: 0015678
22-04-2015 19:17 aflexus Note Added: 0015679
22-04-2015 20:27 zed Note Added: 0015680
22-04-2015 20:34 zed Note Added: 0015681
22-04-2015 20:36 zed Relationship added related to 0002116
22-04-2015 20:36 zed Relationship added related to 0002050
22-04-2015 21:32 aflexus File Added: SAS.Planet.logs_20150423_003052.7z
22-04-2015 21:32 aflexus File Added: SAS.Planet.logs_20150423_003153.7z
22-04-2015 21:34 aflexus File Added: DB_CONFIG
22-04-2015 21:36 aflexus Note Added: 0015682
23-04-2015 07:22 vdemidov Note Added: 0015683
19-05-2015 14:06 vasketsov Relationship added related to 0002728
22-05-2015 03:09 vasketsov Relationship deleted related to 0002728
29-07-2015 13:53 vdemidov Relationship replaced duplicate of 0002050
29-07-2015 13:53 vdemidov Status new => resolved
29-07-2015 13:53 vdemidov Resolution open => duplicate
29-07-2015 13:53 vdemidov Assigned To => vdemidov
29-07-2015 13:53 vdemidov Status resolved => closed



Copyright © 2007 - 2024 SAS.Planet Team