SASGIS - SAS.Планета
View Issue Details
0002468SAS.Планета[All Projects] Багpublic20-07-2014 06:3904-11-2014 12:05
Smith2007 
vdemidov 
highmajoralways
closednot fixable 
Windows7Professional
140303 
 
0002468: Тайлохранилище BerkeleyDB зависает при наличии поврежденных баз
После 3-4 часов работы программы с запущенными 4-мя скачиваниями программа подвисает. Загрузка карт останавливается во всех окнах. Закрыть SASPlanet штатным способом не удается ("не отвечает"), только принудительно используя менеджер задач.
4 раза пытался закачать и 4 раза подвисала.
BerkeleyDB, БД, зависание, кэш
duplicate of 0002108resolved zed BerkeleyDB: зависание при обращении к тайлохранилищу 
? SASPlanet.Debug.elf (292,743) 20-07-2014 06:52
http://www.sasgis.org/mantis/file_download.php?file_id=1749&type=bug
? DB_CONFIG (345) 22-07-2014 16:16
http://www.sasgis.org/mantis/file_download.php?file_id=1750&type=bug
log sdb.log (3,066) 24-07-2014 17:20
http://www.sasgis.org/mantis/file_download.php?file_id=1751&type=bug
Issue History
20-07-2014 06:39Smith2007New Issue
20-07-2014 06:52Smith2007File Added: SASPlanet.Debug.elf
20-07-2014 08:21vdemidovNote Added: 0014446
20-07-2014 08:21vdemidovStatusnew => feedback
20-07-2014 09:34Smith2007Note Added: 0014447
20-07-2014 09:34Smith2007Statusfeedback => new
20-07-2014 10:00vdemidovStatusnew => feedback
20-07-2014 10:20Smith2007Note Added: 0014448
20-07-2014 10:20Smith2007Statusfeedback => new
20-07-2014 10:22Smith2007Note Edited: 0014448bug_revision_view_page.php?bugnote_id=14448#r6175
20-07-2014 14:13vdemidovNote Added: 0014449
20-07-2014 16:19Smith2007Note Added: 0014450
20-07-2014 17:08vdemidovNote Added: 0014451
20-07-2014 18:01Smith2007Note Added: 0014452
21-07-2014 06:39vdemidovStatusnew => acknowledged
21-07-2014 06:39vdemidovProduct Version.Nightly => 140303
21-07-2014 06:39vdemidovSummaryЗависают закачки карт => Тайлохранилище БерклиДб зависает при наличии поврежденных баз
21-07-2014 08:10Smith2007Note Added: 0014453
21-07-2014 08:23vdemidovAssigned To => zed
21-07-2014 08:23vdemidovStatusacknowledged => assigned
21-07-2014 10:19zedNote Added: 0014455
22-07-2014 11:26vdemidovStatusassigned => feedback
22-07-2014 16:16Smith2007File Added: DB_CONFIG
22-07-2014 16:17Smith2007Note Added: 0014456
22-07-2014 16:17Smith2007Statusfeedback => assigned
22-07-2014 18:13Smith2007Note Added: 0014457
22-07-2014 18:14Smith2007Note Added: 0014458
22-07-2014 18:35Smith2007Note Edited: 0014458bug_revision_view_page.php?bugnote_id=14458#r6177
24-07-2014 11:55zedNote Added: 0014459
24-07-2014 12:10zedRelationship addedduplicate of 0002108
24-07-2014 12:11zedSummaryТайлохранилище БерклиДб зависает при наличии поврежденных баз => Тайлохранилище BerkeleyDB зависает при наличии поврежденных баз
24-07-2014 12:13zedTag Attached: BerkeleyDB
24-07-2014 12:13zedTag Attached: БД
24-07-2014 12:13zedTag Attached: зависание
24-07-2014 12:13zedTag Attached: кэш
24-07-2014 17:20Smith2007File Added: sdb.log
24-07-2014 17:26Smith2007Note Added: 0014460
24-07-2014 17:26Smith2007Note Edited: 0014460bug_revision_view_page.php?bugnote_id=14460#r6179
24-07-2014 17:46zedNote Added: 0014461
25-07-2014 03:13Smith2007Note Added: 0014462
25-07-2014 07:09vdemidovNote Added: 0014463
25-07-2014 11:33Smith2007Note Added: 0014464
29-07-2014 02:42Smith2007Note Added: 0014466
04-11-2014 12:05vdemidovStatusassigned => resolved
04-11-2014 12:05vdemidovResolutionopen => not fixable
04-11-2014 12:05vdemidovAssigned Tozed => vdemidov
04-11-2014 12:05vdemidovStatusresolved => closed

Notes
(0014446)
vdemidov   
20-07-2014 08:21   
Как я понимаю используется тайлохранилище БерклиДб? Переключите на дефолтное и попробуйте снова запустить закачки.
(0014447)
Smith2007   
20-07-2014 09:34   
Да, используется BerklyDB.

попробую на дефолтном - отпишусь.
(0014448)
Smith2007   
20-07-2014 10:20   
(edited on: 20-07-2014 10:22)
На дефолтном работает все нормально. 2 часа загрузки в 5 окон и сам гуляю по этому же кэшу - нормально. Переключился на карту в формате Berkly - САС перестал отрисовывать карты. Похоже проблемы с кешем BerklyDB не только при скачивании но и просто при просмотре с загрузкой недостающих.

(0014449)
vdemidov   
20-07-2014 14:13   
Скорее всего у вас битый кэш. Нужно запустить утилиту восстановления и пройтись ею по папкам с кэшем, на которых есть проблемы.
(0014450)
Smith2007   
20-07-2014 16:19   
Запустил проверку БД. Длительный это процесс. Реально ли об ошибках с БД сообщение выдавать? Так будет понятно с какими файлами проблема.
(0014451)
vdemidov   
20-07-2014 17:08   
Увы, это к разработчикам БерклиДБ. Они считают нормальным тупо зависнуть на обращении к битой базе. По крайней мере, Zed так говорит, я в этом вопросе не разбирался вообще.
(0014452)
Smith2007   
20-07-2014 18:01   
Найдено 2 ошибки в БД. После исправления запустил 6 окон на скачивание и сам бегал по картам. 30 минут - полет нормальный. Оставлю на ночь, утром отпишусь.
(0014453)
Smith2007   
21-07-2014 08:10   
Утром обнаружил, что загрузка вновь остановилась. При попытке открыть карту Спутник.Яндекс (именно ее и загружал в 6 окон) интерфейс отображения карты завис. Закрыть программу без помощи менеджера задач не удалось. Есть подозрение, что БД будет вновь повреждена. Вопрос: Кто ее корежит? Вчера после исправления ошибок, специально еще раз прогнал утилитку уже на тех картах (Спутник.Яндекс) на которых имелись 2 ошибки. Повторный запуск ошибок в БД не выявил. Сегодня уходил на работу запустил проверку. Результат узнаю после работы.
Подозреваю, что ночная сборка как-то портит БД. Может это результат параллельной загрузки? Гружу 2 области и в одном месте они пересекаются и обе загружают 17 и 17 зум. Может с этим быть связано?
(0014455)
zed   
21-07-2014 10:19   
Нужны логи и содержимое конфига БД.
(0014456)
Smith2007   
22-07-2014 16:17   
Конфиг залил. Логи какие нужны?
(0014457)
Smith2007   
22-07-2014 18:13   
Запустил скачивание:
Спутник.Яндекс
Спутник.Гугул
vesat

Скачивал в течении часа без ошибок. Счетчики файлов на всех картах щелкают.
При этом в главном окне открыта другая карта (не из списка скачиваемых).
Переключился на Спутник.Гугул, погулял по карте и через некоторое время счетчик загрузки Спутник.Гугл остановился. При этом счетчики на других закачках увеличивались как положено.
Переключаюсь на Спутник.Яндекс - счетчик останавливается, главный экран с картой не отрисовывается. При этом vesat продолжает качать. Переключаюсь на vesat - останавливается закачка. Больше ни одна карта не загружается. Переключение между картами не дает ни чего.
Запустил проверку базы. Позже отпишу результат.
(0014458)
Smith2007   
22-07-2014 18:14   
(edited on: 22-07-2014 18:35)
Проверил базу Спутник.Яндекс - ошибок не обнаружено
vesat - ошибок не обнаружено

(0014459)
zed   
24-07-2014 11:55   
>Конфиг залил.
У вас старый неправильный конфиг.Там должно быть вот такое:

set_flags DB_TXN_NOSYNC off
set_flags DB_TXN_WRITE_NOSYNC off
set_flags DB_DIRECT_DB off
set_flags DB_DSYNC_DB off
log_set_config DB_LOG_DIRECT off
log_set_config DB_LOG_DSYNC off
set_lg_dir .
set_data_dir ..
log_set_config DB_LOG_AUTO_REMOVE on
set_cachesize 0 2097152 1
set_lg_max 10485760
set_lg_bsize 2097152

Чтобы привести конфиги для всех карт в порядок, можно воспользоваться утилитой sdb_util или просто по-удалять их - SAS при запуске создаст правильные.

>Логи какие нужны?
sdb.log в корне с программой.
(0014460)
Smith2007   
24-07-2014 17:26   
Лог залил.

Удалил конфиг. Запустил САС
Вот, что он создал.
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

Не похоже на то, что Вы приводите.

(0014461)
zed   
24-07-2014 17:46   
> Не похоже на то, что Вы приводите
Не страшно, главное, что они не противоречат друг другу. И с тем и с тем конфигом SAS будет работать абсолютно одинаково. Проверьте все кэши на ошибки, обновите конфиги и больше SAS зависать не должен.
(0014462)
Smith2007   
25-07-2014 03:13   
Проверю - отпишусь
(0014463)
vdemidov   
25-07-2014 07:09   
Мда. Я конечно понимаю, что такой умный потом, но идея с set_flags DB_TXN_WRITE_NOSYNC on была очень неудачной. Сколько уже времени прошло, а до сих пор всплывает.
(0014464)
Smith2007   
25-07-2014 11:33   
Так с момента зарождения проекта наполняю покрытие. Первые пару лет был исключительно на родном кэше, но после того как потребовалось однажды его скопировать.... Поэтому и настройки Беркли очень древние.
(0014466)
Smith2007   
29-07-2014 02:42   
После изменения настроек беркли сбоев не обнаружено. Качал больше суток в несколько окон. Возможно следует эту проверку включить в настройки БД.