View Issue Details

IDProjectCategoryView StatusLast Update
0003395SAS.ПланетаБаг / Bugpublic14-01-2019 12:55
ReporterHelpmister Assigned Tozed  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version181221 
Target Version190707Fixed in Version190707 
Summary0003395: Вылет ошибки при удалении категории меток
DescriptionОшибка будет, если метка - JPG
Steps To ReproduceИмпорт фотографий JPG(создаётся новая категория)
Удаляем "Новая категория", закрываем окно "Управление метками", закрываем SAS,
ОшибкИ программы
TagsNo tags attached.
Attached Files
Bag.jpg (66,874 bytes)   
Bag.jpg (66,874 bytes)   
SASPlanet.Debug.elf (44,365 bytes)

Activities

zed

11-01-2019 16:31

manager   ~0018493

Какие ошибкИ? Дебажная версия создаёт лог?

Helpmister

11-01-2019 16:49

reporter   ~0018494

Добавил картинки. Пойдёт?

zed

11-01-2019 16:51

manager   ~0018495

Last edited: 11-01-2019 16:52

Не пойдёт.

0. Скачать крайнюю ночную версию;
1. Запустить SASPlanet.NonUnicode.Debug.exe;
2. Воспроизвести ошибку;
3. Приложить создавшийся *.elf файл с логом.

Helpmister

11-01-2019 16:59

reporter   ~0018496

Вложил

zed

11-01-2019 17:09

manager   ~0018497

Метки в SML формате храните?

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

Helpmister

11-01-2019 17:13

reporter   ~0018498

Да, в SML

Дайте время, протестю ещё раз

Helpmister

11-01-2019 17:21

reporter   ~0018499

На крайней ночнушке тоже самое
Эльфа вложил

zed

11-01-2019 17:34

manager   ~0018500

Можете записать видео того, как вы воспроизводите ошибку на чистой ночной сборке?

Helpmister

11-01-2019 17:37

reporter   ~0018501

Попробую.

Helpmister

13-01-2019 22:10

reporter   ~0018506

Zed Я Вам отправил ЛС, получили?

zed

14-01-2019 06:07

manager   ~0018507

Нет. По определённым причинам со мной невозможно связаться через форум.

Пишите мне на почту [email protected], если надо что-то обсудить в привате.

zed

14-01-2019 12:00

manager   ~0018508

Получил видео, воспроизвёл ошибку и нашёл баг в TIDInterfaceList.

Как воспроизвести:
- создать пустую SML базу меток;
- добавить 2 метки в одну вновь созданную категорию;
- удалить категорию;
- закрыть программу - произойдёт AV в методе TIDInterfaceList.SetCapacity на строке SetLength(FList, NewCapacity) (NewCapacity = 0, т.е. идёт очистка списка).

Сам баг живёт в методе TIDInterfaceList.Delete, когда происходит удаление НЕ последнего элемента, т.е. когда вызывается метод Move.

Засада в том, что элемент содержит интерфейсную переменную и после Move остаётся её мусорная копия. Всё бы ничего, мы же в коде к той переменной не обращаемся и RefCount работает как надо, но вот когда вызывается SetLength, который обнаруживает там интерфейсную переменную не равную nil, вот тогда он и пытается её удалить и вываливается в AV.

Есть 2 решение проблемы:
- подчищать мусор после Move в Delete;
- использовать Realloc и указатель на массив, вместо SetLength в SetCapacity.

Первый метод проще, его и применил.

vdemidov

14-01-2019 12:55

manager   ~0018509

> Первый метод проще, его и применил.
Все правильно. Похожий код есть при вставке элемента.

Но я совсем не понимаю, как эта бяка прожила там так долго. Капец.

Issue History

Date Modified Username Field Change
11-01-2019 16:17 Helpmister New Issue
11-01-2019 16:31 zed Note Added: 0018493
11-01-2019 16:45 Helpmister File Added: Bag.jpg
11-01-2019 16:49 Helpmister Note Added: 0018494
11-01-2019 16:51 zed Note Added: 0018495
11-01-2019 16:52 zed Note Edited: 0018495
11-01-2019 16:59 Helpmister File Added: SASPlanet.Debug.elf
11-01-2019 16:59 Helpmister Note Added: 0018496
11-01-2019 17:09 zed Note Added: 0018497
11-01-2019 17:13 Helpmister Note Added: 0018498
11-01-2019 17:21 Helpmister File Added: SASPlanet.NonUnicode.Debug.elf
11-01-2019 17:21 Helpmister Note Added: 0018499
11-01-2019 17:34 zed Note Added: 0018500
11-01-2019 17:37 Helpmister Note Added: 0018501
13-01-2019 11:08 zed Status new => feedback
13-01-2019 22:10 Helpmister Note Added: 0018506
13-01-2019 22:10 Helpmister Status feedback => new
14-01-2019 06:07 zed Note Added: 0018507
14-01-2019 06:47 vdemidov Status new => feedback
14-01-2019 12:00 zed Note Added: 0018508
14-01-2019 12:00 zed Status feedback => resolved
14-01-2019 12:00 zed Fixed in Version => 190707
14-01-2019 12:00 zed Resolution open => fixed
14-01-2019 12:00 zed Assigned To => zed
14-01-2019 12:01 zed Target Version => 190707
14-01-2019 12:55 vdemidov Note Added: 0018509
08-08-2025 13:22 zed Category Баг => Баг / Bug