View Issue Details

IDProjectCategoryView StatusLast Update
0001215SAS.ПланетаБаг / Bugpublic10-10-2012 11:45
ReporterGarl Assigned Tovdemidov  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
PlatformWindowsOS7OS VersionProfessional
Product Version.Nightly 
Target Version120808Fixed in Version120808 
Summary0001215: Вылет при генерации вышележащих тайлов и движении карты
DescriptionСобственно, если при генерации если подвигать карту, то вылетает ошибка
Tagsформирование
Attached Files
gen_prev_err.png (4,892 bytes)   
gen_prev_err.png (4,892 bytes)   
SASPlanet.Debug.elf (5,210 bytes)
err2.jpg (72,680 bytes)   
err2.jpg (72,680 bytes)   
625.jpg (10,412 bytes)   
625.jpg (10,412 bytes)   

Relationships

has duplicate 0001259 closedvdemidov Ошибка при генерировании вышележащийх слоев 
has duplicate 0001229 closedvdemidov Отказ формирования слоёв 
has duplicate 0001352 closedDJ VK Ошибка загрузки изображения из памяти (0 байт) 
related to 0001232 closedvdemidov AV при скачивании кэша Яндекса 

Activities

vdemidov

14-03-2012 09:06

manager   ~0006081

Давай подробности. У меня не воспроизводится.

Garl

14-03-2012 09:25

manager   ~0006084

в карте на котороый вываливается стоит UseDwn=0
в остальном вроде всё стандартно

vdemidov

14-03-2012 09:28

manager   ~0006086

Увы, тикет пока ни о чем. Ни версия не указана, ни какого типа тайлы, да вообще ничего. Прикрепленный elf файл вообще об утечке памяти, а не авешке.

Garl

14-03-2012 09:31

manager   ~0006088

на отдельно взятой копии с другим кэшем вылета нет.
debug версия не вылетает.

тайлы jpg нарезаные Global mapper'ом
вылетает только процесс генерации. с картинкой без каких либо пояснений.

vdemidov

14-03-2012 09:35

manager   ~0006090

> на отдельно взятой копии с другим кэшем вылета нет.
Ну тогда дебаггер в руки и вперед.
И еще убедись, что вылетает билд именно моей ветки, а не собранный vasketsov-ым.

Garl

14-03-2012 09:36

manager   ~0006091

Last edited: 14-03-2012 09:37

вылетает сегодняшняя ночнушка
120308 всё ок

vdemidov

14-03-2012 11:45

manager   ~0006097

Найди хотя бы место, где вылетает.

vasketsov

14-03-2012 21:30

manager   ~0006111

Ну чего, ждать этот инцидент, или потихоньку можно заливаться?
Вроде все "поверхностные" баги уже должны были отловиться...

Garl

15-03-2012 02:58

manager   ~0006113

заливаться.
поймаю - профиксим.

Garl

19-03-2012 09:29

manager   ~0006201

так же вылетает второй поток генерации вышележащих тайлов.
раньше можно было делать и 3 и 4 потока и всё работало на ура.

vasketsov

19-03-2012 13:52

manager   ~0006202

Валится в файле ImagingJpeg тут:

procedure TermSource(cinfo: j_decompress_ptr);
var
  Src: PSourceMgr;
begin
  Src := PSourceMgr(cinfo.src);
  // Move stream position back just after EOI marker so that more that one
  // JPEG images can be loaded from one stream
  JIO.Seek(Src.Input, -Src.Pub.bytes_in_buffer, smFromCurrent);
end;

(по крайней мере остановка тут)

vdemidov

19-03-2012 14:26

manager   ~0006203

Похоже на то, что вылезла та же нетредсейфовость, что и при чтении.

vasketsov

19-03-2012 14:29

manager   ~0006204

>вылезла та же нетредсейфовость
Если это про то, чего я тебя спрашивал - то этот кусок зовётся изнутри BeginWrite .. EndWrite.
Возможно что-то другое.

vdemidov

19-03-2012 14:51

manager   ~0006206

Проблема в том, что в отличие от ридеров, которые создаются по 1 на каждый формат, врайтеров для каждого формата может быть несколько с разными настройками. И даже если каждый завернут в свою синхронизацию, в итоге будет авешка.

vasketsov

19-03-2012 15:09

manager   ~0006207

>врайтеров для каждого формата может быть несколько с разными настройками
Ситуация простая и воспроизводимая 100%.

Беру гугл.
1. Выделяю область на 14-м уме и качаю (галку "закрыть окно" отключаю). Может и без этого шага можно.
2. Для неё же переключаюсь.на генерацию и генерю вышележащие зумы 12-7.
3. Нажимаю на запуск генерации 3-4 раза - на самом деле сколько успею, валится быстро и уверенно.

Разве тут несколько разных классов райтеров будет?

vdemidov

19-03-2012 15:15

manager   ~0006208

Вроде бы не должно. Хорошая была гипотеза.

vasketsov

19-03-2012 15:25

manager   ~0006209

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

zed

20-03-2012 09:00

manager   ~0006213

Приаттачил exe, который юзает libjpeg для чтения/записи жпегов. Проверьте на нём. По-идее, так же должна увеличиться и скорость сжатия тайлов, жаль нет счётчиков для TileSave.

vasketsov

20-03-2012 09:39

manager   ~0006214

Last edited: 20-03-2012 09:42

На приаттаченном ошибка не вылезла.
Но лишних 700 килобайт несколько напрягло.

>должна увеличиться и скорость сжатия тайлов
Визуально скорость генерации вышележащих стала выше, но как известно, один раз не пи#$%ас. Счётчики конечно нужны. И для tilestorage тоже.

Garl

20-03-2012 09:44

manager   ~0006215

>который юзает libjpeg
вылетов не наблюдается :) ура

zed

20-03-2012 09:58

manager   ~0006216

>Но лишних 700 килобайт несколько напрягло.
Это дебажная версия :) Если полностью перейти на libjpeg, то размер exe наоборот должен килов на 100 уменьшиться. Этот imaging ведь тоже завязан на эту либу, только они взяли да переписали сишный код на паскаль, причём сделано это было довольно давно (лет с 10 назад) и соответственно, либа там очень старая.

>вылетов не наблюдается :) ура
Это на картах с jpeg тайлами, а на png/gif всё осталось как и прежде (а прежде оно там вылетало кстати?).

zed

20-03-2012 10:09

manager   ~0006217

Last edited: 20-03-2012 10:17

Может вкорячить туда же libpng и libgif, да выкинуть imaging со всеми потрохами? Но тогда нужно будет все эти либы слинковать статически.

Весь Imaging, вкомпиленный в exe, занимает ~900k. В итоге, либы будут занимать меньший размер (тем более, что они и так и так юзаются для склейки, т.е. в релизе они будут присутствовать по любому).

Garl

20-03-2012 10:10

manager   ~0006218

тикет был открыт при падении на JPG.
до остальных форматов руки не доходили.

vasketsov

20-03-2012 10:12

manager   ~0006219

>тогда нужно будет все эти либы слинковать статически
почему?

zed

20-03-2012 10:21

manager   ~0006220

Last edited: 20-03-2012 10:21

Не, ну можно конечно, оставить как сейчас, но логичнее их жёстко привязать к сасу, потому как без них, сас вообще работать не будет (не сможет отображать тайлы в гуе). Сейчас, без libjpeg не работает только одна отдельно-взятая функция склейки в JPEG.

vasketsov

20-03-2012 10:32

manager   ~0006221

>без них, сас вообще работать не будет
Ну так это можно же сделать и без статической линковки либы.

zed

20-03-2012 10:33

manager   ~0006222

Можно, но вопрос - зачем? Чем плоха статика?

vasketsov

20-03-2012 10:54

manager   ~0006223

Ну например либа заменится на новую версию.
Или переход там обязательно связан с изменением API?

zed

20-03-2012 11:35

manager   ~0006224

Я наверное неправильно выразился, имелся в виду способ вызова dll-ки без использования GetProcAdress, т.е. статическая загрузка dll.

vasketsov

20-03-2012 11:55

manager   ~0006225

>статическая загрузка dll
Ну вот и представь себе вместо libjpeg61.dll потребуется подсунуть libjpeg8.dll без пересборки (ну или наоборот откатиться). Статическая линковка dll ведь подразумевает необходимость захардкодить её имя.
Я потому и спрашиваю про (не)изменность api этих dll (может то, о чём я волнуюсь, вообще не имеет смысла, и это совсем разные dll).

zed

20-03-2012 12:05

manager   ~0006226

>Ну вот и представь себе вместо libjpeg61.dll потребуется подсунуть libjpeg8.dll без пересборки
Нет, так нельзя, там разные структуры в интерфейсе.

vasketsov

20-03-2012 12:12

manager   ~0006227

ну коли смена dll только через пересборку - тогда не вижу принципиальных минусов. разве что вдруг все сервисы резко откажутся от jpeg-ов и оно станет просто ненужным.

zed

20-03-2012 12:25

manager   ~0006228

Last edited: 20-03-2012 12:26

Без пересборки можно менять либы, у которых не изменяется "ведущая" версия (которая, как правило, выносится в имя dll):
jpeg8.dll можно заменять на любую 8-ю версию, так же, как можно обновить и jpeg62.dll (сейчас там turbo-1.1.1, а уже доступна turbo-1.2.0)
libpng15.dll можно менять на любую 1.5.xxx (в сасе сейчас лежит 1.5.7, но уже вышла 1.5.9)
zlib1.dll - лежит 1.2.5, но можно обновлять до 1.2.6
и т.д.

Garl

21-03-2012 07:29

manager   ~0006231

в ночнушке 120321 уже libjpeg юзается?
есть траблы:
текущий зум 13, выделяем больше 1 тайла и генерим из 14 до 1 (учитывая вышележащие, может и не надо)
некоторые тайлы становятся размером 0 байт.
и соответственно не отображаются.

zed

21-03-2012 10:09

manager   ~0006232

>уже libjpeg юзается?
нет

vasketsov

26-03-2012 11:46

manager   ~0006280

Часто AV даже просто при одной генерации вышележащих вылазит. Именно там где описано в сообщении 6202.

vdemidov

17-06-2012 20:27

manager   ~0007436

А как сейчас с этим багом? Продолжает вылетать, и если да, то на каких форматах?

Garl

18-06-2012 04:51

manager   ~0007442

вроде вылета нету, но тайлы периодически не генерятся

vdemidov

18-06-2012 07:01

manager   ~0007445

В смысле теряются? Просто не сохраняется, или поврежденное сохраняется, или процесс прекращается? На каких форматах наблюдается?

Garl

18-06-2012 07:04

manager   ~0007446

я первый день после больничного. как разгребусь погоняю получше с нормальным баг репортом ) ибо всё на чём вылетало находится на работе.

vdemidov

18-06-2012 07:12

manager   ~0007447

Хорошо. Будем ждать :)

Garl

18-06-2012 08:15

manager   ~0007451

получается что программа пытается прочитать файл, который ещё дописывается :)

vdemidov

18-06-2012 08:25

manager   ~0007452

Тоесть реально тайл сохранился, а при чтении программа получила ошибку?

Garl

18-06-2012 08:26

manager   ~0007453

Last edited: 18-06-2012 08:29

ага, но всёравно временами получаем тайлы = 0

vdemidov

18-06-2012 08:30

manager   ~0007454

Поймай в дебагере ошибку, что на err2.jpg и кинь сюда стек

vdemidov

18-06-2012 08:39

manager   ~0007455

Просто то что видно на err.jpg это все правильно. Это ошибка чтения jpg. Все честно. Оно попыталось прочитать нулевой файл и получило ексепшен. А вот AV с err2.jpg уже странно. Как и при каких обстоятельствах она появляется?

Garl

18-06-2012 08:42

manager   ~0007456

она попала на скриншот случайно, еле поймал,
при передвижении карты - тайл отрисовался и ошибки не стало

vasketsov

18-06-2012 21:04

manager   ~0007470

У меня ошибка возникала при генерации вышележащих (зум 16 из 18) если одновременно выполнены два условия:
а) текущий зум 16;
б) выбрано более одного тайла на 16 зуме.

Если текущий зум не 16 либо выбран ровно один тайл на 16-м зуме для (пере)генерации - ошибки нет.

Описанное поведение - 100% воспроизводится.

DJ VK

25-06-2012 09:41

manager   ~0007637

наблюдал это при скачке сразу двух типов тайлов PNG+JPG с сохранением в PNG.
так что дело не в JPG.

DJ VK

25-06-2012 09:43

manager   ~0007638

Last edited: 25-06-2012 09:45

бага появилась где-то после 5045 и намного раньше 5297 (так и не исправлена)

кому надо - берите 5045 (могу прислать), стабильная версия.

vdemidov

25-06-2012 12:45

manager   ~0007643

Сделал. Для всех операций через Vampyre Imaging Library глобальный лок. Тестируйте завтра и обязательно отпишитесь у кого воспроизводилась эта ошибка.

Garl

25-06-2012 13:33

manager   ~0007645

полёт нормальный! прям не нарадуюсь!

zed

25-06-2012 13:39

manager   ~0007646

Это лишь подтверждает, что проблема в библиотеке. Но с глобальным локом мы превратили работу с тайлами из многопоточной в однопоточную.

vdemidov

25-06-2012 13:46

manager   ~0007648

Ну не совсем. Операции чтения с диска и перепроецирования все равно идут в других потоках независимо. Но согласен от Vampyre Imaging Library нужно отказываться.
Я попробовал чуток ее причесать для тредсейфовости и не выдержал. Слишком много там глобальных переменных.

Issue History

Date Modified Username Field Change
14-03-2012 06:21 Garl New Issue
14-03-2012 06:21 Garl File Added: gen_prev_err.png
14-03-2012 09:06 vdemidov Note Added: 0006081
14-03-2012 09:06 vdemidov Status new => feedback
14-03-2012 09:23 Garl File Added: SASPlanet.Debug.elf
14-03-2012 09:23 vdemidov Tag Attached: формирование
14-03-2012 09:25 Garl Note Added: 0006084
14-03-2012 09:25 Garl Status feedback => new
14-03-2012 09:27 Garl Assigned To => Garl
14-03-2012 09:27 Garl Status new => feedback
14-03-2012 09:28 vdemidov Note Added: 0006086
14-03-2012 09:28 vdemidov Assigned To Garl =>
14-03-2012 09:31 Garl Note Added: 0006088
14-03-2012 09:31 Garl Status feedback => new
14-03-2012 09:35 vdemidov Note Added: 0006090
14-03-2012 09:36 Garl Note Added: 0006091
14-03-2012 09:37 Garl Note Edited: 0006091
14-03-2012 11:45 vdemidov Assigned To => Garl
14-03-2012 11:45 vdemidov Status new => assigned
14-03-2012 11:45 vdemidov Note Added: 0006097
14-03-2012 21:30 vasketsov Note Added: 0006111
15-03-2012 02:58 Garl Note Added: 0006113
15-03-2012 17:24 Garl Relationship added related to 0001220
15-03-2012 22:08 vdemidov Relationship deleted related to 0001220
16-03-2012 08:25 Garl Relationship added related to 0001222
19-03-2012 09:29 Garl Note Added: 0006201
19-03-2012 13:52 vasketsov Note Added: 0006202
19-03-2012 14:26 vdemidov Note Added: 0006203
19-03-2012 14:29 vasketsov Note Added: 0006204
19-03-2012 14:51 vdemidov Note Added: 0006206
19-03-2012 15:09 vasketsov Note Added: 0006207
19-03-2012 15:15 vdemidov Note Added: 0006208
19-03-2012 15:25 vasketsov Note Added: 0006209
20-03-2012 08:57 zed File Added: SASPlanet.LibJpeg.7z
20-03-2012 09:00 zed Note Added: 0006213
20-03-2012 09:39 vasketsov Note Added: 0006214
20-03-2012 09:42 vasketsov Note Edited: 0006214
20-03-2012 09:44 Garl Note Added: 0006215
20-03-2012 09:58 zed Note Added: 0006216
20-03-2012 10:09 zed Note Added: 0006217
20-03-2012 10:10 Garl Note Added: 0006218
20-03-2012 10:12 vasketsov Note Added: 0006219
20-03-2012 10:17 zed Note Edited: 0006217
20-03-2012 10:21 zed Note Added: 0006220
20-03-2012 10:21 zed Note Edited: 0006220
20-03-2012 10:32 vasketsov Note Added: 0006221
20-03-2012 10:33 zed Note Added: 0006222
20-03-2012 10:54 vasketsov Note Added: 0006223
20-03-2012 11:35 zed Note Added: 0006224
20-03-2012 11:55 vasketsov Note Added: 0006225
20-03-2012 12:05 zed Note Added: 0006226
20-03-2012 12:12 vasketsov Note Added: 0006227
20-03-2012 12:25 zed Note Added: 0006228
20-03-2012 12:26 zed Note Edited: 0006228
21-03-2012 07:29 Garl Note Added: 0006231
21-03-2012 10:09 zed Note Added: 0006232
22-03-2012 08:03 gpsMax Tag Attached: библиотеки
24-03-2012 21:28 vdemidov Target Version => 120808
24-03-2012 22:31 vdemidov Relationship added related to 0001232
26-03-2012 11:46 vasketsov Note Added: 0006280
02-04-2012 05:26 vdemidov Relationship added has duplicate 0001259
02-04-2012 10:10 vdemidov Relationship added has duplicate 0001229
14-05-2012 08:35 vdemidov Description Updated
14-05-2012 09:09 vdemidov Relationship deleted related to 0001222
17-06-2012 20:27 vdemidov Note Added: 0007436
17-06-2012 20:27 vdemidov Status assigned => feedback
18-06-2012 04:51 Garl Note Added: 0007442
18-06-2012 04:51 Garl Status feedback => assigned
18-06-2012 07:01 vdemidov Note Added: 0007445
18-06-2012 07:01 vdemidov Status assigned => feedback
18-06-2012 07:04 Garl Note Added: 0007446
18-06-2012 07:04 Garl Status feedback => assigned
18-06-2012 07:12 vdemidov Note Added: 0007447
18-06-2012 07:12 vdemidov Status assigned => feedback
18-06-2012 08:14 Garl File Added: err.jpg
18-06-2012 08:14 Garl File Added: err2.jpg
18-06-2012 08:15 Garl Note Added: 0007451
18-06-2012 08:15 Garl Status feedback => assigned
18-06-2012 08:20 Garl File Added: 625.jpg
18-06-2012 08:25 vdemidov Note Added: 0007452
18-06-2012 08:26 Garl Note Added: 0007453
18-06-2012 08:29 Garl Note Edited: 0007453
18-06-2012 08:30 vdemidov Note Added: 0007454
18-06-2012 08:39 vdemidov Note Added: 0007455
18-06-2012 08:42 Garl Note Added: 0007456
18-06-2012 08:46 vdemidov File Deleted: SASPlanet.LibJpeg.7z
18-06-2012 08:47 vdemidov File Deleted: err.jpg
18-06-2012 08:47 vdemidov Tag Detached: библиотеки
18-06-2012 21:04 vasketsov Note Added: 0007470
25-06-2012 09:36 DJ VK Relationship added has duplicate 0001352
25-06-2012 09:41 DJ VK Note Added: 0007637
25-06-2012 09:43 DJ VK Note Added: 0007638
25-06-2012 09:45 DJ VK Note Edited: 0007638
25-06-2012 12:45 vdemidov Note Added: 0007643
25-06-2012 12:46 vdemidov Assigned To Garl =>
25-06-2012 12:46 vdemidov Status assigned => feedback
25-06-2012 13:33 Garl Note Added: 0007645
25-06-2012 13:33 Garl Status feedback => new
25-06-2012 13:34 Garl Status new => feedback
25-06-2012 13:39 zed Note Added: 0007646
25-06-2012 13:46 vdemidov Note Added: 0007648
26-06-2012 12:30 vdemidov Status feedback => resolved
26-06-2012 12:30 vdemidov Fixed in Version => 120808
26-06-2012 12:30 vdemidov Resolution open => fixed
26-06-2012 12:30 vdemidov Assigned To => vdemidov
10-10-2012 11:45 Tolik Status resolved => closed
08-08-2025 13:22 zed Category Баг => Баг / Bug