Anonymous | Login | Signup for a new account | 31-10-24 23:06 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0002301 | SAS.Планета | [All Projects] Баг | public | 28-12-2013 21:06 | 29-01-2014 19:04 | ||||
Reporter | dmytro_ovdiienko | ||||||||
Assigned To | zed | ||||||||
Priority | normal | Severity | major | Reproducibility | sometimes | ||||
Status | resolved | Resolution | fixed | ||||||
Platform | Windows | OS | XP | OS Version | SP3 | ||||
Product Version | 131111 | ||||||||
Target Version | 140303 | Fixed in Version | 140303 | ||||||
Summary | 0002301: Залипания во время просмотра карты | ||||||||
Description | В какой-то момент начинает жутко тормозить выкачка тейлов во время просмотра карты. Слои OSM MAPNIK и OSM Mapsurfer. Когда с ними все плохо, перехожу на OSM CycleMap. Но тогда и он начинает тупить. И вроде как начинаю думать на тормоза OSM сервера, но в браузере никаких тормозов нет. Если же SASPlanet закрыть и открыть по новой, все сразу начинает летать. В чем может быть проблема? Может это зависание всех воркеров выкачки тейлов? Если да, можно как-то очистить очередь задач? | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | SAS.DeBug.2301.7z [^] (2,672,234 bytes) 13-01-2014 19:56 | ||||||||
Relationships | ||||||||||||||||
|
Notes | |
(0013452) dmytro_ovdiienko (reporter) 28-12-2013 22:00 |
Вот опять залипло. "Queue: 0". И почемуто только OSM MAPNIK и Mapsurfer. Слои Bing или OSM CycleMap не глючат. Перезапуск программы решает проблему. |
(0013453) gma (reporter) 29-12-2013 08:32 |
Аналогично. Всё собирался создать инц., да грешил на свою машину. Если достаточно долго (мин. 5--10) сёрфить по любой карте -- она сначала начинает тормозить, а потом перестаёт скачиваться вовсе. При этом загрузка по области (если запущена параллельно) продолжается, как ни в чём не бывало. Замечено в течение последнего года на разных версиях, в т.ч. ночнушках. Перезагрузка помогает всегда. Win-vistahome. |
(0013456) zed (manager) 29-12-2013 11:14 |
Проверьте воспроизводимость на текущей ночнушке. |
(0013457) dmytro_ovdiienko (reporter) 29-12-2013 14:21 |
Воспроизводится. |
(0013474) zed (manager) 31-12-2013 11:28 |
У меня не воспроизводится. Можно по шагам, на чистой ночнушке? |
(0013475) dmytro_ovdiienko (reporter) 31-12-2013 11:32 |
Сложно объяснить... Просто выбираю OSM MAPNIK и дергаю карту туда сюда на монике с разрешением 1680*1080. В какойто момент карта перестает загружаться. Переключаюсь на mapsurfer. Опять дергаю туда-сюда. И эта зависает. Переключение опять на MAPNIK н помогает. Может сделать каокй-то билд, к которому можно было бы подключиться дебагером и получить дамп? А дамп потом можно было бы посмотреть у тебя на машине. |
(0013477) zed (manager) 31-12-2013 11:41 |
В ночнушке идёт SASPlanet.Debug.exe который ловит ошибки, но если там что-то тихо-мирно просто висит, то тут мало что поможет. Раз проблема только на OSM, наверное имеет смысл сделать дамп запросов на сервер любым снифером. Может там что-то крайне неожиданное прилетает от сервера и сокет просто остаётся в подвешенном состоянии. И можно попробовать в zmp ограничить или наоборот увеличить число подключений к серверу (MaxConnectionsCount) и прописать в хидерах "Connection: Close". Но не факт, что проблема в http-стеке. Может просто глючит очередь или ещё в одном из тысячи возможных мест... |
(0013478) vdemidov (manager) 31-12-2013 11:56 |
А еще, возможно просто есть отличие между отправляемым САС.Планетой запросом и запросом из браузера. И сервер по этой разнице начинает банить такие запросы. |
(0013533) dmytro_ovdiienko (reporter) 10-01-2014 23:46 |
Может какие-то логи добавить для отладки? |
(0013535) gma (reporter) 11-01-2014 08:03 |
"У меня не воспроизводится. Можно по шагам, на чистой ночнушке?" вчерашняя 1400110 -- воспроизводится, м.б. чуть позже, чем на прошлогодних. По шагам: запускаю САС, выбираю карту (в моём случае это любые спутники, вчера тестировал на Imagery2) и стрелочками двигаю карту (z16, если важно) вверх, вниз, влево, вправо. Минут 5--7 всё летает, потом начинает подтормаживать, а минут через 15--20 от начала и вовсе встаёт (именно эта карта, которая тестировалась -- остальные поначалу помогают растормаживать и с ними всё нормально, а потом только другие и качаются). Принудительная загрузка конкретных тайлов (на правой кнопке) работает, т.е. тормоза не абсолютные, а только на сёрфинг. И, как я говорил выше, закачка по областям тоже работает нормально. |
(0013536) zed (manager) 11-01-2014 08:10 |
> и стрелочками двигаю карту (z16, если важно) вверх, вниз, влево, вправо Так может клинит именно это перемещение? Плавную анимацию отключать пробовали? |
(0013549) zed (manager) 12-01-2014 14:38 |
Да, есть такое-то странное поведение на этой карте. До полного "залипания" довести ситуацию не получилось, но то, что тайлы начинают качаться медленно и не все, это факт. Причём, все запросы ушедшие на сервер возвращаются с 200 ОК, но вот очередь тайлов может быстренько скатиться до 0 (с 32-х), скачав при этом всего несколько тайлов. |
(0013550) zed (manager) 12-01-2014 15:13 edited on: 12-01-2014 15:13 |
Понял почему счётчик слетает до нуля. Если загрузка тайлов очень медленная (по 15 сек. на тайл), то по TTL (30 сек.) этот поток будет успешно прибит и очередь обнулится. Но вопрос, почему эти тайлы начинают вдруг так медленно качаться, остаётся открытым. |
(0013555) gma (reporter) 12-01-2014 17:07 |
"Так может клинит именно это перемещение?" -- нет, программе равно, чем её перемещают, мышкой или клавой. "Плавную анимацию отключать пробовали?" -- не отключается. Там есть "Аним. при масштабировании" -- она у меня выключена по умолчанию. И есть "Движение по инерции" -- вот оно, будучи выключенным, всё равно продолжается. Вер: 140110.7793. Кстати, обратный счётчик показывает цены на яхты, но где-то не здесь. Впрочем, это отдельный баг и оформлять его нужно соотв. ) |
(0013556) zed (manager) 12-01-2014 17:09 |
Со счётчиком всё в порядке. |
(0013557) zed (manager) 12-01-2014 17:58 |
В общем, полечил загадочное поведение 0002301:0013549, а по поводу снижения скорости загрузки, я без понятия. У меня это торможение наблюдается практически сразу после запуска (RAM-кэш + активная смена зума и позиции, не дожидаясь окончания загрузки тайлов). Но снифером видно, что все потоки качают, но сервер отдаёт очень медленно. Ну, или может это мы вдруг начинаем спать между приёмом пакетов - но с чего бы? Тем более, что при закачке того же гугла всё летает. |
(0013558) dmytro_ovdiienko (reporter) 12-01-2014 18:03 |
И после рестарта приложения все опять работает без тормозов. И выкачка региона тайлов, как говорит gma, работает нормально. Чем отлиается реализация выкачки региона и экрана? |
(0013559) zed (manager) 12-01-2014 18:13 |
> И после рестарта приложения все опять работает без тормозов. Перезапуск не обязательное условие. Можно просто переключиться на другую карту и/или подождать некоторый таймаут, пока SAS не закроет все соединения с этим сервером или пока сервер не решит, что можно уже и не тормозить. > И выкачка региона тайлов, как говорит gma, работает нормально. Чем отлиается реализация выкачки региона и экрана? У меня эти вещи работают одинаково медленно. И реализация там ничем не отличается - закачка идёт через одну и туже очередь. |
(0013560) dmytro_ovdiienko (reporter) 12-01-2014 18:15 |
С перезапуском ты продолжаешь работать с той же картой. То есть, врядли это тормоза на стороне сервера. Можно посчитать задержку между прибытием пакета на сетевуху и появлением ее на экране. |
(0013561) zed (manager) 12-01-2014 18:20 |
А вот у меня, перезапуск не помогает. Только что проверил. Видно я сегодня за вечер уже порядком поднадоел серверу. > Можно посчитать задержку между прибытием пакета на сетевуху и появлением ее на экране. Вы для начала, посчитайте скорость прибытия пакетов на сетевуху. Т.е. нужны убедительные доказательства, что это тормозит не сервер и что это не проявления своеобразного бана. А то, что в браузере всё работает - совсем не показатель. Там же куки и все дела, а тут - робот. |
(0013562) dmytro_ovdiienko (reporter) 12-01-2014 18:22 |
Дело в том, что скорость прибытия пакетов на сетевуху зависит от скорости их выкачки. Если приложение тормозит, то и на той стороне посылают с задержкой. |
(0013563) dmytro_ovdiienko (reporter) 12-01-2014 18:24 edited on: 12-01-2014 18:24 |
Ок. попробую посчитать скорость ответа на HTTP запрос |
(0013564) zed (manager) 12-01-2014 18:24 |
Поставьте кэширующий прокси между SAS и сервером. Пускай прокси выкачивает без задержек, если у него получится и отдаёт тайлы SAS-у. |
(0013565) dmytro_ovdiienko (reporter) 12-01-2014 19:23 |
Похоже, тормозит именно SAS. Ответ от WEB сервера приходит сразу. А вот новые запросы SAS отправляет с задержкой. Ща выложу лог проксисервера и попробую поснифить. Хм... может в системе не хватает ресурсов. Может надо стараться переиспользовать сокеты? |
(0013566) zed (manager) 12-01-2014 19:24 |
Keep-Alive же? |
(0013567) dmytro_ovdiienko (reporter) 12-01-2014 19:25 |
Вот к примеру залип на 3 сек начиная с "!-<12/01 21:11:25". |
(0013568) dmytro_ovdiienko (reporter) 12-01-2014 19:26 |
>Keep-Alive же? В логе видно, как выделяются постоянно новые ТЦП порты |
(0013569) dmytro_ovdiienko (reporter) 12-01-2014 19:28 |
Запись "!->12/01 21:11:27 [127.0.0.1:61011>3128] (t3 421) >Proxy in:7426 out:253 " похоже означает закрытие сокета на строне SAS. |
(0013570) zed (manager) 12-01-2014 19:41 |
> Ответ от WEB сервера приходит сразу Приход ответа, это не мгновенная операция в любом случае. И из ваших логов можно только увидеть, когда ответ начал приходить, но не видно, когда же он пришёл целиком. У меня некоторые тайлы по 20 секунд грузились и в снифере было хорошо видно, как приходят "пакеты". |
(0013571) zed (manager) 12-01-2014 19:42 |
> В логе видно, как выделяются постоянно новые ТЦП порты Значит виноват прокси. Через снифер порты не выделяются и я наблюдаю честный Keep-Alive (OSM MAPNIK). |
(0013572) zed (manager) 12-01-2014 19:45 |
И для тестов лучше в zmp прописать MaxConnectToServerCount=1 и в скрипте убрать генерирование a/b/c префиксов в url (и слать всегда, скажем, на "а"). |
(0013573) zed (manager) 12-01-2014 19:59 edited on: 12-01-2014 19:59 |
У меня, кстати, было опять начало качать быстро, но насёрфив около 800 тайлов оно таки начало тормозить. Хотя всё шло в один поток и с Keep-Alive. И после перезапуска SAS, оно хоть и начало ходить через другой порт, но всё так же медленно, с самого же первого тайла. Так что тут (конкретно на карте OSM MAPNIK), SAS однозначно ни при чём. |
(0013574) dmytro_ovdiienko (reporter) 12-01-2014 20:34 |
Поймал зависон. Ваершарк показвыает, что никаких пакетов со стороны SAS не уходит. У мну WinXP SP3. |
(0013575) dmytro_ovdiienko (reporter) 12-01-2014 20:36 edited on: 12-01-2014 20:38 |
А через 58сек соединение с OSM закрылось. На попытки подвигать карту OSM никак не реагирует. Закрытие подключения инициировал OSM. |
(0013576) zed (manager) 12-01-2014 21:06 |
> никаких пакетов со стороны SAS не уходит Это скорее всего баг с очисткой очереди 0002312 - нужно проверять в завтрашней ночнушке. > На попытки подвигать карту OSM никак не реагирует Т.е. не отвечает на запросы или SAS их не шлёт? |
(0013577) dmytro_ovdiienko (reporter) 12-01-2014 21:08 |
SAS не завис. На мышь и клаву реагирует. Просто не шлет запросы на веб сервер. |
(0013578) dmytro_ovdiienko (reporter) 12-01-2014 21:10 edited on: 12-01-2014 21:10 |
А этот баг с очисткой очереди, как-то объясняет, почему, если переключиться на другую карту, то она работает? |
(0013579) zed (manager) 12-01-2014 21:11 |
Да. Но этот баг на смещение карты не завязан, т.е. закачка должна была возобновиться. |
(0013580) dmytro_ovdiienko (reporter) 12-01-2014 21:13 |
Я ждал минуты 4-5. Закачка не возобновилась. |
(0013581) zed (manager) 12-01-2014 21:16 |
Она должна была начаться мгновенно после смещения карты (если конечно в кэше тайлов нету). А по логу (sas-osm) я никаких замечаний не вижу. |
(0013582) dmytro_ovdiienko (reporter) 12-01-2014 21:21 |
> Она должна была начаться мгновенно после смещения карты (если конечно в кэше тайлов нету). Я переключил SAS в режим Internet. Кеш не должен был использоваться. Но по ощущениям, SAS еще кеширует в памяти. Еще я в ZMP добавил MaxConnectToServerCount=1, но подключений было 3шт (судя по pcap файлу) > А по логу (sas-osm) я никаких замечаний не вижу. Ага. Ничего необычного. Но на последнем тайле все наглухо остановилоась и SAS больше не пробовал что-либо качать. |
(0013583) zed (manager) 12-01-2014 21:27 |
>но подключений было 3шт (судя по pcap файлу) Потому что у сервера алиасы a/b/c: a.tile.openstreetmap.org b.tile.openstreetmap.org c.tile.openstreetmap.org и я рекомендовал исправить скрипт, чтобы оно всегда шло на a.tile.openstreetmap.org >Но по ощущениям, SAS еще кеширует в памяти Да, где-то в конфигах есть переменная TileMaxAgeInInternet |
(0013584) dmytro_ovdiienko (reporter) 12-01-2014 21:30 |
Предлагаю нашпиговать SAS логами и выдать мне на растерзание. |
(0013585) zed (manager) 12-01-2014 21:37 edited on: 12-01-2014 21:38 |
Надо подумать, что именно мониторить. Попробуйте завтра взять ночнушку, включить у карты RAM-кэш и в режиме интернет+кэш погонять до посинения. Почему RAM-кэш, а не просто режим Интернет? Потому что у первого есть конфиги, доступные через zmp: UseMemCache - использовать кэш в памяти (при CacheType=9 (RAM-кэш) отключение данной опции приведёт к ошибке), включено по-умолчанию MemCacheCapacity - количество тайлов кэшируемых в память. По-умолчанию = 100 MemCacheTTL - время жизни тайлов (в миллисекундах), кэшируемых в память. По-умолчанию = 60000 мс. (1 мин.) MemCacheClearStrategy - стратегия очистки (по TTL) кэшируемых в память тайлов. Принимает значения: 0 - удалять ВСЕ тайлы из мем-кэша, если истёк TTL у самого СТАРОГО тайла; 1 - удалять ВСЕ тайлы из мем-кэша, если истёк TTL у самого МОЛОДОГО тайла; 2 - удалять только те тайлы, у которых истёк TTL. По-умолчанию включён режим 1. RestartDownloadOnMemCacheTTL - автоматически перезакачивать тайлы в пределах видимой области экрана при очистке мем-кэша (работает только если UseMemCache=1). По-умолчанию отключено. Описание формата пользовательских карт zmp |
(0013586) zed (manager) 12-01-2014 21:53 |
Кстати, в режиме Интернет, оно пишет в кэш и перезаписывает существующие тайлы. Возможно каким-то боком зависает запись в кэш, а все потоки его дружно ждут. |
(0013587) dmytro_ovdiienko (reporter) 12-01-2014 21:56 |
Это объясняет, почему другие карты продолжают работать? |
(0013588) dmytro_ovdiienko (reporter) 12-01-2014 21:59 |
Для включения RAM Cache нужно добавить в zmp только это? UseMemCache=1 |
(0013589) zed (manager) 12-01-2014 22:06 edited on: 12-01-2014 22:07 |
> Это объясняет, почему другие карты продолжают работать? Зависание кэша? Естественно - у каждой карты свой кэш и своя качалка. > Для включения RAM Для включения - достаточно в гуе зайти в настройки карты (Ctr+Alt+P) и выбрать "Тип кэша - ОЗУ". А в zmp можно уменьшить MemCacheTTL до 15000 (15 секунд) или количество кэшируемых тайлов. Но это уже на усмотрение. |
(0013590) dmytro_ovdiienko (reporter) 12-01-2014 22:07 |
Ок. Завтра проверю. |
(0013591) zed (manager) 12-01-2014 22:11 |
И вдогонку, по тем же 3 кнопкам Ctr+Alt+P, в самом низу есть надпись: "Разрешено скачивание" и в поле - "Да". Так вот, когда оно перестанет качать, загляните сюда, возможно оно там что-то интересное напишет. |
(0013593) dmytro_ovdiienko (reporter) 13-01-2014 19:05 |
Воспроизвел на SAS.Planet.Nightly.140113.7797. Кеш - RAM. Когда зависло, размер очерели == 0 и при перемещении карты не увеличивался. Похоже, что SAS не добавляет тайлы в очередь. |
(0013594) dmytro_ovdiienko (reporter) 13-01-2014 19:06 edited on: 13-01-2014 19:08 |
Мне кажется, где-то увеличивается счетчик подключения к серверу и не декрементируется. |
(0013595) zed (manager) 13-01-2014 20:03 |
Приложил сборку для тестов. Запустить Dbgview.exe, затем SASPlanet.exe, добиться зависания и сбросить лог дебагера сюда. Дебажные сообщения выводятся только для одного класса TUiTileDownload, на всякий случай в архиве исходник этого класса, где видно когда и какие сообщения выводятся (и какие вообще могут быть). Сообщения с текстом "Nothing to do", кроме "Nothing to do: if VNeedDownload" когда тайлы есть в кэше, следует рассматривать как крайне подозрительные. |
(0013596) dmytro_ovdiienko (reporter) 13-01-2014 20:14 |
Во время загрузки в лог что-то должно выводиться? Я запустил, скачал несколко тайлов, но ничего не вижу в dbgview |
(0013597) zed (manager) 13-01-2014 20:15 |
Да, должны бежать строчки очень активно. |
(0013598) dmytro_ovdiienko (reporter) 13-01-2014 20:20 |
Не пишет. Моя программа пишет, а SAS - не пишет. #include <Windows.h> int main() { OutputDebugString("123\n"); } |
(0013599) zed (manager) 13-01-2014 20:28 |
Вот блин :( Вариант - скачать виртуалку http://yadi.sk/d/bZ3bEBzMC2biN и попробовать запустить там. Тем более, там вы при желании сможете запустить SAS прямо под отладчиком и посмотреть как минимум на имена потоков и их наличие в момент бага. Ну и брекпоинты, тоже полезная вещь. |
(0013600) dmytro_ovdiienko (reporter) 13-01-2014 23:49 |
файлы от 27.03.2013.. это точно последнее? |
(0013601) dmytro_ovdiienko (reporter) 13-01-2014 23:53 |
У меня есть CBuilder6. Дай плз сурсы от SAS.Planet.Nightly.140113.7797 |
(0013602) dmytro_ovdiienko (reporter) 14-01-2014 00:12 edited on: 14-01-2014 08:54 |
Нашел сурсы. Что выполняется при перемещении карты? Где бряки ставить? |
(0013605) vdemidov (manager) 14-01-2014 09:08 |
Мне кажется вы фигней занимаетесь. В первую очередь нужно проверить где затык: в сервере, подсистеме загрузки или в загрузчике видимой области. Последний отсекается очень просто. После того как тайлы качаться перестали нажимаем Ctrl-A и запускаем скачивание текущего экрана как области. Если качается, то ошибка именно в загрузке видимой области, если нет, то в подсистеме загрузки. |
(0013607) zed (manager) 14-01-2014 09:19 |
>файлы от 27.03.2013.. это точно последнее? В виртуалке - старые исходники и компоненты, но их легко обновить: - зайти в папку c:\SASPlanet и выполнить в консоли 2 команды "hg pull" (затянуть свежие сорцы с сервера) и "hg update -C" (применить обновление и отбросить локальные изменения) - зайти в папку C:\Program Files\CodeGear\RAD Studio\5.0\lib_sas, удалить папку pascalscript и выполнить те же 2 команды: "hg pull" и "hg update -C" После этого можно запускать SASPlanet.dpr. >У меня есть CBuilder6 Не подойдёт. >Что выполняется при перемещении карты? В u_UiTileDownload.pas вызывается TUiTileDownload.OnPosChange; Соответственно, поток который ставить тайлы в очередь закачки, будет называться TUiTileDownload (он создаётся вот так: VDownloadTask := TBackgroundTask.Create) Очередь запросов в u_InterfaceQueue.pas, поток, который обрабатывает очередь - u_TileRequestQueueProcessorThread.pas (имя потока в дебагере TTileRequestQueueProcessorThread, количество потоков во время загрузки ограничено значением MaxConnectToServerCount). |
(0013608) zed (manager) 14-01-2014 09:23 |
>нужно проверить где затык: в сервере, подсистеме загрузки или в загрузчике видимой области Сервер уже исключили. И очень большое подозрение именно на загрузчика видимой области (читай второе сообщение 0002301:0013453), именно на него (TUiTileDownload) я и натыкал дебажных сообщений, чтобы понять, где там может быть затык. У себя я так и не смог воспроизвести, поэтому вся надежда на dmytro_ovdiienko |
(0013610) zed (manager) 14-01-2014 09:53 |
dmytro_ovdiienko И да, если будете расставлять бряки в отладчике, то в папке Maps лучше оставить только одну карту, иначе в OnPosChange будут прилетать мусорные сообщения от всех остальных карт. |
(0013611) vdemidov (manager) 14-01-2014 10:11 |
>Сервер уже исключили. И очень большое подозрение именно на загрузчика видимой области (читай второе сообщение 0002301:0013453), именно на него (TUiTileDownload) я и натыкал дебажных сообщений, чтобы понять, где там может быть затык. Ну так я и описал способ в этом убедиться на 100% даже без отладчика. |
(0013612) zed (manager) 14-01-2014 10:14 |
Ну убедились, а дальше что? Как баг найти? |
(0013613) dmytro_ovdiienko (reporter) 14-01-2014 10:20 |
Ок. Я сначала еще раз проверю, что поблема в выкачке. Потом буду дебажить. Хотя не уверен, что у меня получится это на виртуалке. На Win7, например, почему-то не воспроизводится. Может, это какаято особенность моей ОС. |
(0013614) dmytro_ovdiienko (reporter) 14-01-2014 10:28 |
И мне нужны исходники того кода, с которым собирался Дебаг, который мне выдал zed. |
(0013615) zed (manager) 14-01-2014 10:32 |
Я уже объяснил, как получить сорцы 0002301:0013607, а единственное отличие моего дебага - изменения в u_UiTileDownload.pas, который я также приложил в аттаче. Так что заменив его, вы получите идентичную копию сборки. |
(0013616) vdemidov (manager) 14-01-2014 10:48 |
> Ну убедились, а дальше что? Как баг найти? Точно убедились? Я не уверен, что баг именно в TUiTileDownload. Не так уж много там кода. |
(0013617) zed (manager) 14-01-2014 10:50 |
Тут одно из двух: либо прилетает OnPosChange и где-то в TUiTileDownload не обрабатывается, либо не прилетает и тогда проблема выше. |
(0013618) vdemidov (manager) 14-01-2014 11:40 |
> Тут одно из двух: либо прилетает OnPosChange и где-то в TUiTileDownload не обрабатывается, либо не прилетает и тогда проблема выше. Если бы это было бы так, то не было бы такого: > Вот опять залипло. "Queue: 0". |
(0013619) zed (manager) 14-01-2014 11:41 |
Именно такое и было бы :) |
(0013620) vdemidov (manager) 14-01-2014 11:50 |
Я про "либо не прилетает" |
(0013621) zed (manager) 14-01-2014 11:51 |
Да в обоих случаях счётчик будет стоять на нуле. Ты посмотри, где он увеличивается. |
(0013623) dmytro_ovdiienko (reporter) 14-01-2014 12:49 |
Если бы не прилетало событие, тогда другие карты тоже бы не работали. Верно? |
(0013624) zed (manager) 14-01-2014 13:04 |
Если карта вдруг не отписалась от уведомлений, то да. Вот и выходит, что затык в TUiTileDownload. |
(0013625) dmytro_ovdiienko (reporter) 14-01-2014 13:30 |
А она может отписаться? |
(0013626) zed (manager) 14-01-2014 13:38 |
Отписка происходит только в момент уничтожения карты (TUiTileDownload.Destroy), поэтому, практически - нет. |
(0013627) gma (reporter) 15-01-2014 08:40 |
"После того как тайлы качаться перестали нажимаем Ctrl-A и запускаем скачивание текущего экрана как области" -- Дождался затыка, запустил закачку области -- пошла на ура на хорошей скорости. Экран после этого всё равно не завёлся. |
(0013628) vdemidov (manager) 15-01-2014 09:40 |
Имхо чем пытаться починить TUiTileDownload лучше сразу его переписать полностью. То есть завести массивчик отправленных запросов и итератор тайлов как поля объекта. Убрать оттуда отдельный поток для каждой карты, а завести один поток на все карты, который будет дергать активные. Выкинуть тот семафор нафиг. И тд. |
(0013629) zed (manager) 15-01-2014 10:27 |
>Дождался затыка, запустил закачку области Удалось ли собрать дополнительную информацию при помощи dbgview во время затыка? >Имхо чем пытаться починить TUiTileDownload лучше сразу его переписать полностью Поскольку неизвестно в чём баг, то нет никаких гарантий, что ты его не перенесёшь в новую реализацию. Сейчас по твоим словам реализация простая до предела и глючить там нечему (а оно таки глючит), но предлагаешь усложнить реализацию на порядок, в надежде избавиться от глюка. Где логика? Хотя, несомненно, ты можешь попробовать всё переписать как запланировал, возможно и поможет. Но dmytro_ovdiienko и gma я бы попросил продолжить поиск бага в текущей реализации, а не ждать нового движка от vdemidov. Мне кажется, что OnPosChange должен прилетать и скорее всего мы стартуем поток, но где-то в if/then с завидным постоянством выходим в отсутствующий else блок (куда я напихал OutpuDebugString) и ничего не делаем. И это может быть проблема не собственно TUiTileDownload, а каких-то внешних факторов. |
(0013630) zed (manager) 15-01-2014 10:31 |
gma >Экран после этого всё равно не завёлся И небольшое уточнение терминологии: "затык" это когда карта перестаёт качать и Queue: 0? Показания счётчика в этом случае очень важно. |
(0013631) gma (reporter) 15-01-2014 16:02 |
"И небольшое уточнение терминологии: "затык" это когда карта перестаёт качать и Queue: 0? Показания счётчика в этом случае очень важно" -- Да, когда перестаёт качать. Про счётчик я выше уже говорил, что в норме! он показывает количество лун у марса, иногда у земли, но это число ни от чего не зависит. Сегодня на работе скачал Dbw и попробовал добиться результата с ним -- ничего не вышло, качает как миленькая, дошло до почти трёх тысяч (почти час качал) и тут рабочее время кончилось. Но раньше я ОСМ такими объёмами никогда не качал, да и вообще настройки у меня сильно отличаются, не знаю, важно ли это. |
(0013633) zed (manager) 15-01-2014 16:40 |
> Про счётчик я выше уже говорил, что в норме! Что в норме? Он-то в норме, это и так ясно, но должен быть равен нулю, если зависло. Если не равен нулю, значит не зависло, а просто идёт очень медленная загрузка тайлов в фоне. > он показывает количество лун у марса, иногда у земли, но это число ни от чего не зависит. А я вам ответил, что со счётчиком всё в порядке. Может вы просто не понимаете, что он отображает или перевод вводит в заблуждение. В английском варианте этот счётчик называется Queue - Очередь. В него записывается число тайлов поставленных в очередь на загрузку. Каждая карта имеет свою собственну очередь, но счётчик показывает суммарное число для всех отображаемых карт. К тому же, есть ещё такой момент - для каждой карты введён лимит на количество тайлов, одномоментно находящихся в очереди. И по-умолчанию этот лимит равен 32. Таким образом, если включена одна карта на HD мониторе, то для загрузки экрана нужно скачать порядка 50 тайлов. Карта ставит в очередь 32 штуки и ждёт, пока скачается хотя бы один. В этот момент счётчик показывает эти самые 32. Как только тайл скачался, счётчик становится 31, карта тут же добавляет ещё один тайл в очередь и опять ждёт. При этом операция может произойти настолько быстро, что смены цифр 32 - 31 - 32 вы можете и не увидеть, поэтому некоторое время в Queue будет отображаться 32, а потом начнёт падать до нуля. Или может закачаться сразу 4 тайла (по-умолчанию каждая карта качается в 4 потока), тогда счётчик упадёт до 28, а потом опять увеличится до 32 и уже это изменение счётчика вы можете заметить. Соответственно, если включены 2 карты, то счётчик будет крутиться возле 64-х и не выше, хотя вообще, нужно загрузить 100 тайлов (условно), чтобы обновить экран. |
(0013637) gma (reporter) 16-01-2014 10:04 |
"если включены 2 карты, то счётчик будет крутиться возле 64-х и не выше" -- включена как правило одна карта, лун у марса две, у земли -- одна, вот примерно эти числа он мне и показывает чаще всего, иногда 7, 4 или другое что, но логики в его показаниях я не могу найти. В скачанном дебаге САСовый счётчик показывал всё правильно, у меня он может полчаса показывать единицу, независимо от происходящего на экране. |
(0013644) nvet (reporter) 17-01-2014 21:50 |
Остановка закачки в Ui может происходить на разных картах.У меня например наблюдается для спутника Гугла после скачки нескольких тысяч тайлов. После остановки, под отладчиком нашел "подозрительные" места в коде: -в модуле TBackgroundTask в процедуре Execute в строке 134 переменная VOperatonID принимает значение 0. -в результате в модуле TUiTileDownload в процедуре DoProcessDownloadRequests в строке 377,378 происходит обход кода закачки. Если закачка идет, VOperatonID имеет значение не равное 0. |
(0013646) zed (manager) 18-01-2014 18:44 |
> в модуле TBackgroundTask в процедуре Execute в строке 134 переменная VOperatonID принимает значение 0 Значит поток был только что создан и это первая задача. 0 - абсолютно нормальное значение. > в результате в модуле TUiTileDownload в процедуре DoProcessDownloadRequests в строке 377,378 происходит обход кода закачки Имеется в виду проверка "if ACancelNotifier.IsOperationCanceled(AOperationID) then"? Первый раз может и сработать, если карта движется и прежде чем мы дошли до этой строчки у нас уже успела стартануть новая задача (должны были прилететь вот сюда, отменить старую задачу и увеличить счётчик следующей операции). И обновите свою версию исходников, сейчас на строках 377,378 выполняются совсем другие операции. |
(0013648) nvet (reporter) 18-01-2014 20:16 edited on: 18-01-2014 20:42 |
> Имеется в виду проверка Да, эта самая проверка(нов 407 строка). Попробую повторить остановку на свежей ночной сборке. Если будет, то и на обновленных исходниках. Проверка на версии SAS 140118.7798 Карта спутник гугл.Остановка произошла на 1926 тайлах,осталось 0. Загрузка по контекстному меню происходит, счетчик при этом увеличивается на 1(1927 и т.д.). Перемещения карты мышкой и стрелками к загрузке не приводят,очередь загрузки стоит на нуле во время перемещений. |
(0013651) zed (manager) 20-01-2014 08:27 |
Если кому-то удастся воспроизвести баг на виртуалке под дебагером, то эту виртуалку можно поставить на паузу и выложить её куда-нить на обменник, а ссылку запостить тут. Я думаю должно сработать. |
(0013689) zed (manager) 27-01-2014 16:29 |
Куда все пропали? Жду логов от дебажной сборки из старого аттача. |
(0013696) zed (manager) 29-01-2014 16:34 |
Словил я его. Висело в WaitForMultipleObjects из-за логической ошибки использования семафора. |
(0013697) vdemidov (manager) 29-01-2014 19:04 |
Спасибо. Теперь, когда проблема найдена, она кажется очевидной, но вот поди ж ты - сколько времени понадобилось что бы ее выловить. |
Users who viewed this issue | |
User List | Anonymous (6563x), k-dmitriy (1x) |
Total Views | 6564 |
Last View | 31-10-2024 23:06 |
Issue History | |||
Date Modified | Username | Field | Change |
28-12-2013 21:06 | dmytro_ovdiienko | New Issue | |
28-12-2013 22:00 | dmytro_ovdiienko | Note Added: 0013452 | |
29-12-2013 08:32 | gma | Note Added: 0013453 | |
29-12-2013 11:05 | zed | Relationship added | related to 0001103 |
29-12-2013 11:14 | zed | Note Added: 0013456 | |
29-12-2013 11:14 | zed | Status | new => feedback |
29-12-2013 14:21 | dmytro_ovdiienko | Note Added: 0013457 | |
29-12-2013 14:21 | dmytro_ovdiienko | Status | feedback => new |
29-12-2013 19:18 | gma | Note Added: 0013462 | |
29-12-2013 19:19 | gma | Note Edited: 0013462 | View Revisions |
29-12-2013 19:21 | gma | Note Added: 0013463 | |
30-12-2013 06:09 | zed | Note Added: 0013465 | |
30-12-2013 13:29 | Papazol | Note Added: 0013468 | |
30-12-2013 16:26 | gma | Note Added: 0013469 | |
30-12-2013 22:11 | Papazol | Note Added: 0013470 | |
31-12-2013 05:24 | zed | Note Added: 0013471 | |
31-12-2013 07:47 | Papazol | Note Added: 0013472 | |
31-12-2013 11:26 | zed | Note Deleted: 0013462 | |
31-12-2013 11:26 | zed | Note Deleted: 0013463 | |
31-12-2013 11:26 | zed | Note Deleted: 0013465 | |
31-12-2013 11:26 | zed | Note Deleted: 0013468 | |
31-12-2013 11:26 | zed | Note Deleted: 0013469 | |
31-12-2013 11:27 | zed | Note Deleted: 0013470 | |
31-12-2013 11:27 | zed | Note Deleted: 0013471 | |
31-12-2013 11:27 | zed | Note Deleted: 0013472 | |
31-12-2013 11:28 | zed | Note Added: 0013474 | |
31-12-2013 11:32 | dmytro_ovdiienko | Note Added: 0013475 | |
31-12-2013 11:41 | zed | Note Added: 0013477 | |
31-12-2013 11:56 | vdemidov | Note Added: 0013478 | |
10-01-2014 23:46 | dmytro_ovdiienko | Note Added: 0013533 | |
11-01-2014 08:03 | gma | Note Added: 0013535 | |
11-01-2014 08:10 | zed | Note Added: 0013536 | |
12-01-2014 14:38 | zed | Note Added: 0013549 | |
12-01-2014 15:13 | zed | Note Added: 0013550 | |
12-01-2014 15:13 | zed | Note Edited: 0013550 | View Revisions |
12-01-2014 17:07 | gma | Note Added: 0013555 | |
12-01-2014 17:09 | zed | Note Added: 0013556 | |
12-01-2014 17:44 | zed | Relationship added | related to 0002312 |
12-01-2014 17:58 | zed | Note Added: 0013557 | |
12-01-2014 18:03 | dmytro_ovdiienko | Note Added: 0013558 | |
12-01-2014 18:13 | zed | Note Added: 0013559 | |
12-01-2014 18:15 | dmytro_ovdiienko | Note Added: 0013560 | |
12-01-2014 18:20 | zed | Note Added: 0013561 | |
12-01-2014 18:22 | dmytro_ovdiienko | Note Added: 0013562 | |
12-01-2014 18:24 | dmytro_ovdiienko | Note Added: 0013563 | |
12-01-2014 18:24 | zed | Note Added: 0013564 | |
12-01-2014 18:24 | dmytro_ovdiienko | Note Edited: 0013563 | View Revisions |
12-01-2014 19:23 | dmytro_ovdiienko | Note Added: 0013565 | |
12-01-2014 19:23 | dmytro_ovdiienko | File Added: http1.log.zip | |
12-01-2014 19:24 | zed | Note Added: 0013566 | |
12-01-2014 19:25 | dmytro_ovdiienko | Note Added: 0013567 | |
12-01-2014 19:26 | dmytro_ovdiienko | Note Added: 0013568 | |
12-01-2014 19:28 | dmytro_ovdiienko | Note Added: 0013569 | |
12-01-2014 19:41 | zed | Note Added: 0013570 | |
12-01-2014 19:42 | zed | Note Added: 0013571 | |
12-01-2014 19:45 | zed | Note Added: 0013572 | |
12-01-2014 19:59 | zed | Note Added: 0013573 | |
12-01-2014 19:59 | zed | Note Edited: 0013573 | View Revisions |
12-01-2014 20:34 | dmytro_ovdiienko | Note Added: 0013574 | |
12-01-2014 20:36 | dmytro_ovdiienko | Note Added: 0013575 | |
12-01-2014 20:38 | dmytro_ovdiienko | Note Edited: 0013575 | View Revisions |
12-01-2014 20:41 | dmytro_ovdiienko | File Added: sas-osm.7z | |
12-01-2014 21:06 | zed | Note Added: 0013576 | |
12-01-2014 21:08 | dmytro_ovdiienko | Note Added: 0013577 | |
12-01-2014 21:10 | dmytro_ovdiienko | Note Added: 0013578 | |
12-01-2014 21:10 | dmytro_ovdiienko | Note Edited: 0013578 | View Revisions |
12-01-2014 21:10 | dmytro_ovdiienko | Note Edited: 0013578 | View Revisions |
12-01-2014 21:11 | zed | Note Added: 0013579 | |
12-01-2014 21:13 | dmytro_ovdiienko | Note Added: 0013580 | |
12-01-2014 21:16 | zed | Note Added: 0013581 | |
12-01-2014 21:21 | dmytro_ovdiienko | Note Added: 0013582 | |
12-01-2014 21:27 | zed | Note Added: 0013583 | |
12-01-2014 21:30 | dmytro_ovdiienko | Note Added: 0013584 | |
12-01-2014 21:37 | zed | Note Added: 0013585 | |
12-01-2014 21:38 | zed | Note Edited: 0013585 | View Revisions |
12-01-2014 21:53 | zed | Note Added: 0013586 | |
12-01-2014 21:56 | dmytro_ovdiienko | Note Added: 0013587 | |
12-01-2014 21:59 | dmytro_ovdiienko | Note Added: 0013588 | |
12-01-2014 22:06 | zed | Note Added: 0013589 | |
12-01-2014 22:07 | dmytro_ovdiienko | Note Added: 0013590 | |
12-01-2014 22:07 | zed | Note Edited: 0013589 | View Revisions |
12-01-2014 22:11 | zed | Note Added: 0013591 | |
13-01-2014 19:05 | dmytro_ovdiienko | Note Added: 0013593 | |
13-01-2014 19:06 | dmytro_ovdiienko | Note Added: 0013594 | |
13-01-2014 19:08 | dmytro_ovdiienko | Note Edited: 0013594 | View Revisions |
13-01-2014 19:56 | zed | File Added: SAS.DeBug.2301.7z | |
13-01-2014 20:03 | zed | Note Added: 0013595 | |
13-01-2014 20:12 | zed | File Deleted: http1.log.zip | |
13-01-2014 20:12 | zed | File Deleted: sas-osm.7z | |
13-01-2014 20:14 | dmytro_ovdiienko | Note Added: 0013596 | |
13-01-2014 20:15 | zed | Note Added: 0013597 | |
13-01-2014 20:20 | dmytro_ovdiienko | Note Added: 0013598 | |
13-01-2014 20:28 | zed | Note Added: 0013599 | |
13-01-2014 23:49 | dmytro_ovdiienko | Note Added: 0013600 | |
13-01-2014 23:53 | dmytro_ovdiienko | Note Added: 0013601 | |
14-01-2014 00:12 | dmytro_ovdiienko | Note Added: 0013602 | |
14-01-2014 00:29 | dmytro_ovdiienko | Note Edited: 0013602 | View Revisions |
14-01-2014 08:54 | dmytro_ovdiienko | Note Edited: 0013602 | View Revisions |
14-01-2014 08:54 | dmytro_ovdiienko | Note Edited: 0013602 | View Revisions |
14-01-2014 09:08 | vdemidov | Note Added: 0013605 | |
14-01-2014 09:19 | zed | Note Added: 0013607 | |
14-01-2014 09:23 | zed | Note Added: 0013608 | |
14-01-2014 09:53 | zed | Note Added: 0013610 | |
14-01-2014 10:11 | vdemidov | Note Added: 0013611 | |
14-01-2014 10:14 | zed | Note Added: 0013612 | |
14-01-2014 10:20 | dmytro_ovdiienko | Note Added: 0013613 | |
14-01-2014 10:28 | dmytro_ovdiienko | Note Added: 0013614 | |
14-01-2014 10:32 | zed | Note Added: 0013615 | |
14-01-2014 10:48 | vdemidov | Note Added: 0013616 | |
14-01-2014 10:50 | zed | Note Added: 0013617 | |
14-01-2014 11:40 | vdemidov | Note Added: 0013618 | |
14-01-2014 11:41 | zed | Note Added: 0013619 | |
14-01-2014 11:50 | vdemidov | Note Added: 0013620 | |
14-01-2014 11:51 | zed | Note Added: 0013621 | |
14-01-2014 12:49 | dmytro_ovdiienko | Note Added: 0013623 | |
14-01-2014 13:04 | zed | Note Added: 0013624 | |
14-01-2014 13:30 | dmytro_ovdiienko | Note Added: 0013625 | |
14-01-2014 13:38 | zed | Note Added: 0013626 | |
15-01-2014 08:40 | gma | Note Added: 0013627 | |
15-01-2014 09:40 | vdemidov | Note Added: 0013628 | |
15-01-2014 10:27 | zed | Note Added: 0013629 | |
15-01-2014 10:31 | zed | Note Added: 0013630 | |
15-01-2014 10:39 | zed | Relationship added | child of 0002307 |
15-01-2014 16:02 | gma | Note Added: 0013631 | |
15-01-2014 16:40 | zed | Note Added: 0013633 | |
16-01-2014 10:04 | gma | Note Added: 0013637 | |
17-01-2014 21:50 | nvet | Note Added: 0013644 | |
18-01-2014 18:44 | zed | Note Added: 0013646 | |
18-01-2014 20:16 | nvet | Note Added: 0013648 | |
18-01-2014 20:42 | nvet | Note Edited: 0013648 | View Revisions |
20-01-2014 08:27 | zed | Note Added: 0013651 | |
27-01-2014 16:29 | zed | Note Added: 0013689 | |
27-01-2014 16:29 | zed | Status | new => feedback |
29-01-2014 16:34 | zed | Note Added: 0013696 | |
29-01-2014 16:38 | zed | Target Version | => 140303 |
29-01-2014 16:38 | zed | Status | feedback => resolved |
29-01-2014 16:38 | zed | Fixed in Version | => 140303 |
29-01-2014 16:38 | zed | Resolution | open => fixed |
29-01-2014 16:38 | zed | Assigned To | => zed |
29-01-2014 19:04 | vdemidov | Note Added: 0013697 |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |