View Issue Details

IDProjectCategoryView StatusLast Update
0002689SAS.ПланетаБаг / Bugpublic29-07-2015 13:53
Reporteraflexus Assigned Tovdemidov  
PrioritynormalSeveritytweakReproducibilityrandom
Status closedResolutionduplicate 
PlatformWindowsOS7OS VersionUltimate
Product Version.Nightly 
Summary0002689: Ошибка при закрытии
DescriptionС какой-то периодичностью выскакивает ошибка при закрытии программы. Лог приаттачил.
TagsNo tags attached.
Attached Files
SASPlanet.Debug.elf (155,235 bytes)
DB_CONFIG (202 bytes)   
set_flags DB_TXN_NOWAIT on
set_flags DB_TXN_WRITE_NOSYNC off
set_lg_dir .
set_data_dir ..
set_cachesize 0 2097152 1
set_lg_max 10485760
set_lg_bsize 2097152
log_set_config DB_LOG_AUTO_REMOVE on
DB_CONFIG (202 bytes)   

Relationships

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

Activities

vdemidov

20-04-2015 13:52

manager   ~0015618

Учитывая наличие TGlobalBerkeleyDBHelper в потерянных объектах, рискну предположить, что это подвисшее обращение к базе беркли осталось висеть.
Проверяйте свой кэш.

zed

20-04-2015 17:21

manager   ~0015624

>Учитывая наличие TGlobalBerkeleyDBHelper
Это ни о чём не говорит. Вот если бы там были TBerkeleyDBEnv или TBerkeleyDB, тогда другое дело. А так, тупо GlobalState не освободился и все порождённые им интерфейсы остались в памяти. Может там EmbeddedWB подвис - в отличии от всех остальных объектов, у него отсылка к Finalization и вот там могло случиться что-нибудь нехорошее.

vdemidov

21-04-2015 06:53

manager   ~0015629

> А так, тупо GlobalState не освободился и все порождённые им интерфейсы остались в памяти.
Не, такого не может быть так как GlobalState удаляется простым Free в основном потоке.
Это подвис поток, который держал ссылки на все эти объекты. Так что EmbeddedWB не подходит.

aflexus

22-04-2015 19:08

reporter   ~0015677

Повторяется только на кеше беркли. На всех кешах беркли, что у меня есть. Некоторые из них проверил - целые. Поэтому видимо дело не в этом.

zed

22-04-2015 19:10

manager   ~0015678

> Некоторые из них проверил
Проверять надо тот, который открывается в программе (какую карту просматриваете).

aflexus

22-04-2015 19:17

reporter   ~0015679

zed, вы не поняли, открывал разные карты. Все, которые в беркли, при закрытии вылетали с той или иной периодичностью. Эти же кеши проверял sdb_util - все ок.

zed

22-04-2015 20:27

manager   ~0015680

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

Когда баг воспроизведётся, скиньте мне ещё sdb.log (появится рядом с exe) и конфиги кэшей которые открывались (файлы DB_CONFIG из папки env в кэше).

zed

22-04-2015 20:34

manager   ~0015681

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

И ещё, судя по логам, там очень маленькое время UpTime, а по этому поводу у нас уже был тикет.

aflexus

22-04-2015 21:36

reporter   ~0015682

Логи и DB_CONFIG (он везде одинаковый) добавил. По всей видимости, действительно вылет почти всегда происходит, если закрыть программу сразу после запуска.

vdemidov

23-04-2015 07:22

manager   ~0015683

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

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
08-08-2025 13:22 zed Category Баг => Баг / Bug