SASGIS - SAS.Планета
View Issue Details
0003114SAS.Планета[All Projects] Багpublic21-07-2016 19:1822-07-2016 13:48
aflexus 
zed 
normalcrashalways
resolvedfixed 
Windows7Ultimate
160707 
181221181221 
0003114: Менеджер кэша неправильно обрабатывает имена с точкой
Если в менеджере кэша в пути к исходному или целевому тайлохранилищу есть точка в последней части имени, то это воспринимается как расширение архива и если расширение не совпадает с поддерживаемыми типами архивов или тип тайлохранилища не поддерживает запаковку в архив, то работа не выполняется.

Выпадает ошибка
Assertion failure
(D:\coding\Delphi\src\SAS.Planet\sas.nightly\sas.src\Src\CacheManager\frm_CacheManager.pas, line 285)
No tags attached.
Issue History
21-07-2016 19:18aflexusNew Issue
21-07-2016 19:24aflexusNote Added: 0017538
21-07-2016 20:01zedNote Added: 0017539
21-07-2016 20:04vdemidovNote Added: 0017540
21-07-2016 20:05aflexusNote Added: 0017541
21-07-2016 20:06aflexusNote Edited: 0017541bug_revision_view_page.php?bugnote_id=17541#r7036
21-07-2016 20:15vdemidovNote Added: 0017542
21-07-2016 20:21aflexusNote Added: 0017543
22-07-2016 05:56vdemidovStatusnew => confirmed
22-07-2016 05:56vdemidovProduct Version.Nightly => 160707
22-07-2016 05:56vdemidovTarget Version => 26xxxx
22-07-2016 05:56vdemidovSummaryОшибка при попытке конвертации в версионный беркли. => Менеджер кэша неправильно обрабатывает имена с точкой
22-07-2016 05:56vdemidovDescription Updatedbug_revision_view_page.php?rev_id=7038#r7038
22-07-2016 12:25zedNote Added: 0017545
22-07-2016 12:25zedStatusconfirmed => resolved
22-07-2016 12:25zedFixed in Version => 181221
22-07-2016 12:25zedResolutionopen => fixed
22-07-2016 12:25zedAssigned To => zed
22-07-2016 12:25zedTarget Version26xxxx => 181221
22-07-2016 12:43vdemidovNote Added: 0017548
22-07-2016 13:04zedNote Added: 0017551
22-07-2016 13:13vdemidovNote Added: 0017552
22-07-2016 13:39zedNote Added: 0017554
22-07-2016 13:48vdemidovNote Added: 0017555

Notes
(0017538)
aflexus   
21-07-2016 19:24   
Возможно проблема в имени папки с кешем? Конкретно эти двe выдавали ошибку:

here.com.map
here.com.satellite

В остальных случаях проблем с конвертом sas->dbv не наблюдалось.
(0017539)
zed   
21-07-2016 20:01   
Да, связано с именем папки. Ошибка в определении является ли источник архивом (поддерживаются тайловые кэши в zip и tar архивах) или папкой.
(0017540)
vdemidov   
21-07-2016 20:04   
Да. Дело в наличии точки в имени папки. У Zed там логика такая, что если есть точка, значит есть расширение, а если есть расширение, значит это не папка, а файл, а раз файл, значит архив. А раз расширение не архивное, значит ошибка.
(0017541)
aflexus   
21-07-2016 20:05   
(edited on: 21-07-2016 20:06)
Карта в sas.plus.maps. В программе поправимо? Или все папки с точками переименовывать? Тогда и в репозитории их надо переименовать тоже, чтобы при обновлении не дублировались.

(0017542)
vdemidov   
21-07-2016 20:15   
В sas.plus.maps? Вы уверены? Там обычно zmp лежат, а кэш отдельно. Но вообще точки играют роль только в последней части пути.
(0017543)
aflexus   
21-07-2016 20:21   
В релизе они (sas.plus.maps) ведь лежат распакованными в виде папок, а не в виде архивов zmp. Сами гляньте SAS.Planet.Release.160707.zip :) И так, вроде как всегда и было.

Но тут, насколько я понимаю, дело не в этом, а в имени папки, куда сохраняется кеш (NameInCache), верно?
(0017545)
zed   
22-07-2016 12:25   
> У Zed там логика такая
У НАС там логика такая.

> В программе поправимо?
Да, добавил проверку на наличие файла перед анализом расширения.

А по поводу поддержки тайловых кэшей в zip я погорячился. На текущий момент поддерживается только tar.
(0017548)
vdemidov   
22-07-2016 12:43   
>> У Zed там логика такая
>У НАС там логика такая.
Та ладно, это полностью твое детище.
Надо вообще избавляться от такой проверки пути исходного и результирующего тайлохранилища, а делать отдельные типы для заархивированных в разные архивы с разной структурой каталогов.
А то после твоего фикса теперь нельзя перегнать кэш в tar не создав предварительно пустой файл с нужным именем.
(0017551)
zed   
22-07-2016 13:04   
>Та ладно, это полностью твое детище.
Первоначально я его написал, но туда уже достаточно много внесено доработок и тобой и Garl-ом и vasketsov-ым. SAS это коллективный труд и не стоит разделять и вести учёт своего кода и кода zed-а и прочих. Такое разграничение с твоей стороны, говорит только о том, что ты баги в "чужом" коде исправлять принципиально не собираешься, но потыкать пальцем в них всегда рад.
(0017552)
vdemidov   
22-07-2016 13:13   
> Такое разграничение с твоей стороны, говорит только о том, что ты баги в "чужом" коде исправлять принципиально не собираешься, но потыкать пальцем в них всегда рад.
Ну почему же, явные баги я везде по возможности исправляю, но здесь это не столько баг, сколько особенность логики, которую нельзя исправить не переделав ГУЙ весьма сильно. А поскольку я этой функциональностью не пользуюсь совсем, то не считаю себя в праве все так сильно переделывать, так как могу добавить новых более критичных багов.

А по поводу потыкать пальцем в баги, то я буду рад, если кто-то потыкает пальцем в мои. Главное что бы это было обоснованное тыканье.
(0017554)
zed   
22-07-2016 13:39   
Ничего там в гуе сильно переделывать не надо. Там в опции результирующего кэша достаточно добавить чекбокс и список поддерживаемых архивов, чтобы юзер однозначно указывал, что конвертация производится в архив. Найду время, сделаю. Хотя и сомневаюсь, что про такую возможность много кто знал и пользовался.
(0017555)
vdemidov   
22-07-2016 13:48   
Ну да, учитывая что этой баге уже фиг знает сколько лет, а всплыла только сейчас. Но не пользуются именно потому что ГУЙ никак не намекает на наличие фитчи. Был бы чекбокс - пользовались бы чаще.