View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0001215 | SAS.Планета | Баг / Bug | public | 14-03-2012 06:21 | 10-10-2012 11:45 |
| Reporter | Garl | Assigned To | vdemidov | ||
| Priority | normal | Severity | crash | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | Windows | OS | 7 | OS Version | Professional |
| Product Version | .Nightly | ||||
| Target Version | 120808 | Fixed in Version | 120808 | ||
| Summary | 0001215: Вылет при генерации вышележащих тайлов и движении карты | ||||
| Description | Собственно, если при генерации если подвигать карту, то вылетает ошибка | ||||
| Tags | формирование | ||||
| Attached Files | |||||
|
|
Давай подробности. У меня не воспроизводится. |
|
|
в карте на котороый вываливается стоит UseDwn=0 в остальном вроде всё стандартно |
|
|
Увы, тикет пока ни о чем. Ни версия не указана, ни какого типа тайлы, да вообще ничего. Прикрепленный elf файл вообще об утечке памяти, а не авешке. |
|
|
на отдельно взятой копии с другим кэшем вылета нет. debug версия не вылетает. тайлы jpg нарезаные Global mapper'ом вылетает только процесс генерации. с картинкой без каких либо пояснений. |
|
|
> на отдельно взятой копии с другим кэшем вылета нет. Ну тогда дебаггер в руки и вперед. И еще убедись, что вылетает билд именно моей ветки, а не собранный vasketsov-ым. |
|
|
вылетает сегодняшняя ночнушка 120308 всё ок |
|
|
Найди хотя бы место, где вылетает. |
|
|
Ну чего, ждать этот инцидент, или потихоньку можно заливаться? Вроде все "поверхностные" баги уже должны были отловиться... |
|
|
заливаться. поймаю - профиксим. |
|
|
так же вылетает второй поток генерации вышележащих тайлов. раньше можно было делать и 3 и 4 потока и всё работало на ура. |
|
|
Валится в файле 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; (по крайней мере остановка тут) |
|
|
Похоже на то, что вылезла та же нетредсейфовость, что и при чтении. |
|
|
>вылезла та же нетредсейфовость Если это про то, чего я тебя спрашивал - то этот кусок зовётся изнутри BeginWrite .. EndWrite. Возможно что-то другое. |
|
|
Проблема в том, что в отличие от ридеров, которые создаются по 1 на каждый формат, врайтеров для каждого формата может быть несколько с разными настройками. И даже если каждый завернут в свою синхронизацию, в итоге будет авешка. |
|
|
>врайтеров для каждого формата может быть несколько с разными настройками Ситуация простая и воспроизводимая 100%. Беру гугл. 1. Выделяю область на 14-м уме и качаю (галку "закрыть окно" отключаю). Может и без этого шага можно. 2. Для неё же переключаюсь.на генерацию и генерю вышележащие зумы 12-7. 3. Нажимаю на запуск генерации 3-4 раза - на самом деле сколько успею, валится быстро и уверенно. Разве тут несколько разных классов райтеров будет? |
|
|
Вроде бы не должно. Хорошая была гипотеза. |
|
|
может несколько экземпляров одного класса уже будут валить? ведь то что я спрашивал - это синхронизация внутри одного "вампира", а другой там вроде как бы и нету. |
|
|
Приаттачил exe, который юзает libjpeg для чтения/записи жпегов. Проверьте на нём. По-идее, так же должна увеличиться и скорость сжатия тайлов, жаль нет счётчиков для TileSave. |
|
|
На приаттаченном ошибка не вылезла. Но лишних 700 килобайт несколько напрягло. >должна увеличиться и скорость сжатия тайлов Визуально скорость генерации вышележащих стала выше, но как известно, один раз не пи#$%ас. Счётчики конечно нужны. И для tilestorage тоже. |
|
|
>который юзает libjpeg вылетов не наблюдается :) ура |
|
|
>Но лишних 700 килобайт несколько напрягло. Это дебажная версия :) Если полностью перейти на libjpeg, то размер exe наоборот должен килов на 100 уменьшиться. Этот imaging ведь тоже завязан на эту либу, только они взяли да переписали сишный код на паскаль, причём сделано это было довольно давно (лет с 10 назад) и соответственно, либа там очень старая. >вылетов не наблюдается :) ура Это на картах с jpeg тайлами, а на png/gif всё осталось как и прежде (а прежде оно там вылетало кстати?). |
|
|
Может вкорячить туда же libpng и libgif, да выкинуть imaging со всеми потрохами? Но тогда нужно будет все эти либы слинковать статически. Весь Imaging, вкомпиленный в exe, занимает ~900k. В итоге, либы будут занимать меньший размер (тем более, что они и так и так юзаются для склейки, т.е. в релизе они будут присутствовать по любому). |
|
|
тикет был открыт при падении на JPG. до остальных форматов руки не доходили. |
|
|
>тогда нужно будет все эти либы слинковать статически почему? |
|
|
Не, ну можно конечно, оставить как сейчас, но логичнее их жёстко привязать к сасу, потому как без них, сас вообще работать не будет (не сможет отображать тайлы в гуе). Сейчас, без libjpeg не работает только одна отдельно-взятая функция склейки в JPEG. |
|
|
>без них, сас вообще работать не будет Ну так это можно же сделать и без статической линковки либы. |
|
|
Можно, но вопрос - зачем? Чем плоха статика? |
|
|
Ну например либа заменится на новую версию. Или переход там обязательно связан с изменением API? |
|
|
Я наверное неправильно выразился, имелся в виду способ вызова dll-ки без использования GetProcAdress, т.е. статическая загрузка dll. |
|
|
>статическая загрузка dll Ну вот и представь себе вместо libjpeg61.dll потребуется подсунуть libjpeg8.dll без пересборки (ну или наоборот откатиться). Статическая линковка dll ведь подразумевает необходимость захардкодить её имя. Я потому и спрашиваю про (не)изменность api этих dll (может то, о чём я волнуюсь, вообще не имеет смысла, и это совсем разные dll). |
|
|
>Ну вот и представь себе вместо libjpeg61.dll потребуется подсунуть libjpeg8.dll без пересборки Нет, так нельзя, там разные структуры в интерфейсе. |
|
|
ну коли смена dll только через пересборку - тогда не вижу принципиальных минусов. разве что вдруг все сервисы резко откажутся от jpeg-ов и оно станет просто ненужным. |
|
|
Без пересборки можно менять либы, у которых не изменяется "ведущая" версия (которая, как правило, выносится в имя 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 и т.д. |
|
|
в ночнушке 120321 уже libjpeg юзается? есть траблы: текущий зум 13, выделяем больше 1 тайла и генерим из 14 до 1 (учитывая вышележащие, может и не надо) некоторые тайлы становятся размером 0 байт. и соответственно не отображаются. |
|
|
>уже libjpeg юзается? нет |
|
|
Часто AV даже просто при одной генерации вышележащих вылазит. Именно там где описано в сообщении 6202. |
|
|
А как сейчас с этим багом? Продолжает вылетать, и если да, то на каких форматах? |
|
|
вроде вылета нету, но тайлы периодически не генерятся |
|
|
В смысле теряются? Просто не сохраняется, или поврежденное сохраняется, или процесс прекращается? На каких форматах наблюдается? |
|
|
я первый день после больничного. как разгребусь погоняю получше с нормальным баг репортом ) ибо всё на чём вылетало находится на работе. |
|
|
Хорошо. Будем ждать :) |
|
|
получается что программа пытается прочитать файл, который ещё дописывается :) |
|
|
Тоесть реально тайл сохранился, а при чтении программа получила ошибку? |
|
|
ага, но всёравно временами получаем тайлы = 0 |
|
|
Поймай в дебагере ошибку, что на err2.jpg и кинь сюда стек |
|
|
Просто то что видно на err.jpg это все правильно. Это ошибка чтения jpg. Все честно. Оно попыталось прочитать нулевой файл и получило ексепшен. А вот AV с err2.jpg уже странно. Как и при каких обстоятельствах она появляется? |
|
|
она попала на скриншот случайно, еле поймал, при передвижении карты - тайл отрисовался и ошибки не стало |
|
|
У меня ошибка возникала при генерации вышележащих (зум 16 из 18) если одновременно выполнены два условия: а) текущий зум 16; б) выбрано более одного тайла на 16 зуме. Если текущий зум не 16 либо выбран ровно один тайл на 16-м зуме для (пере)генерации - ошибки нет. Описанное поведение - 100% воспроизводится. |
|
|
наблюдал это при скачке сразу двух типов тайлов PNG+JPG с сохранением в PNG. так что дело не в JPG. |
|
|
бага появилась где-то после 5045 и намного раньше 5297 (так и не исправлена) кому надо - берите 5045 (могу прислать), стабильная версия. |
|
|
Сделал. Для всех операций через Vampyre Imaging Library глобальный лок. Тестируйте завтра и обязательно отпишитесь у кого воспроизводилась эта ошибка. |
|
|
полёт нормальный! прям не нарадуюсь! |
|
|
Это лишь подтверждает, что проблема в библиотеке. Но с глобальным локом мы превратили работу с тайлами из многопоточной в однопоточную. |
|
|
Ну не совсем. Операции чтения с диска и перепроецирования все равно идут в других потоках независимо. Но согласен от Vampyre Imaging Library нужно отказываться. Я попробовал чуток ее причесать для тредсейфовости и не выдержал. Слишком много там глобальных переменных. |
| 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 |