SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0002809 | SAS.Планета | [All Projects] Баг | public | 06-09-2015 16:18 | 08-09-2015 15:26 |
|
Reporter | Tolik | |
Assigned To | zed | |
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | |
Platform | Windows | OS | 7 | OS Version | Ultimate |
Product Version | .Nightly | |
Target Version | 150915 | Fixed in Version | 150915 | |
|
Summary | 0002809: Метки в SQLite3: не сохраняется выбор категорий при выходе |
Description | SAS.Planet.Nightly.150905.9015.7z
Метки в SQLite3.
После перезапуска САС всегда выбрана куча разных категорий, одна и та же куча, непонятно, почему именно эта. |
Steps To Reproduce | См. скриншоты.
1. Использую метки в SML (26 МБ), выбираю одну категорию, делаю экспорт всей базы в файл test1.db3
2. Добавляю эту базу
3. Переключаюсь на неё - выбраны все метки
4. Выбираю одну категорию
5. После выхода и входа выбрано много категорий. |
Additional Information | Если переключиться в SML и обратно в SQLite3 - выбраны те же самые категории, как на 5-м скриншоте. |
Tags | No tags attached. |
Relationships | |
Attached Files | 2015-09-06_190740.png (17,465) 06-09-2015 16:19 http://www.sasgis.org/mantis/file_download.php?file_id=1929&type=bug
2015-09-06_190827.png (7,861) 06-09-2015 16:20 http://www.sasgis.org/mantis/file_download.php?file_id=1930&type=bug
2015-09-06_190846.png (14,904) 06-09-2015 16:20 http://www.sasgis.org/mantis/file_download.php?file_id=1931&type=bug
2015-09-06_190857.png (17,315) 06-09-2015 16:20 http://www.sasgis.org/mantis/file_download.php?file_id=1932&type=bug
2015-09-06_190938.png (14,924) 06-09-2015 16:21 http://www.sasgis.org/mantis/file_download.php?file_id=1933&type=bug
|
|
Issue History |
Date Modified | Username | Field | Change |
06-09-2015 16:18 | Tolik | New Issue | |
06-09-2015 16:19 | Tolik | File Added: 2015-09-06_190740.png | |
06-09-2015 16:20 | Tolik | File Added: 2015-09-06_190827.png | |
06-09-2015 16:20 | Tolik | File Added: 2015-09-06_190846.png | |
06-09-2015 16:20 | Tolik | File Added: 2015-09-06_190857.png | |
06-09-2015 16:21 | Tolik | File Added: 2015-09-06_190938.png | |
06-09-2015 16:23 | Tolik | Additional Information Updated | bug_revision_view_page.php?rev_id=6692#r6692 |
06-09-2015 16:26 | Tolik | Steps to Reproduce Updated | bug_revision_view_page.php?rev_id=6694#r6694 |
06-09-2015 16:28 | Tolik | Summary | Метки в mysql: не сохраняется выбор категорий при выходе => Метки в SQLite3: не сохраняется выбор категорий при выходе |
06-09-2015 16:28 | Tolik | Description Updated | bug_revision_view_page.php?rev_id=6696#r6696 |
06-09-2015 16:28 | Tolik | Additional Information Updated | bug_revision_view_page.php?rev_id=6697#r6697 |
06-09-2015 16:54 | Papazol | Note Added: 0016416 | |
06-09-2015 18:00 | zed | Note Added: 0016417 | |
06-09-2015 19:07 | Tolik | Note Added: 0016418 | |
06-09-2015 19:08 | Tolik | Note Edited: 0016418 | bug_revision_view_page.php?bugnote_id=16418#r6699 |
06-09-2015 19:12 | Tolik | Note Edited: 0016418 | bug_revision_view_page.php?bugnote_id=16418#r6700 |
07-09-2015 06:50 | zed | Note Added: 0016419 | |
07-09-2015 06:57 | zed | Note Added: 0016420 | |
07-09-2015 07:37 | Papazol | Note Added: 0016421 | |
07-09-2015 07:44 | zed | Note Added: 0016422 | |
07-09-2015 08:17 | Papazol | Note Added: 0016423 | |
07-09-2015 08:21 | zed | Note Added: 0016424 | |
07-09-2015 08:23 | Papazol | Note Edited: 0016423 | bug_revision_view_page.php?bugnote_id=16423#r6702 |
07-09-2015 08:24 | Papazol | Note Added: 0016425 | |
07-09-2015 08:30 | zed | Note Added: 0016426 | |
07-09-2015 08:42 | Papazol | Note Added: 0016427 | |
07-09-2015 13:13 | zed | Note Added: 0016431 | |
07-09-2015 14:20 | zed | Note Added: 0016432 | |
07-09-2015 14:29 | zed | Note Edited: 0016432 | bug_revision_view_page.php?bugnote_id=16432#r6704 |
07-09-2015 15:02 | vdemidov | Target Version | => 150915 |
07-09-2015 15:07 | vdemidov | Status | new => feedback |
07-09-2015 16:56 | Papazol | File Added: SASPlanet.zip | |
07-09-2015 17:07 | Papazol | Note Added: 0016433 | |
07-09-2015 17:08 | Papazol | File Added: Логи.zip | |
07-09-2015 20:43 | zed | Note Added: 0016434 | |
07-09-2015 20:43 | zed | Assigned To | => zed |
07-09-2015 20:43 | zed | Status | feedback => assigned |
08-09-2015 15:04 | zed | Note Added: 0016435 | |
08-09-2015 15:04 | zed | Status | assigned => feedback |
08-09-2015 15:22 | Tolik | Note Added: 0016436 | |
08-09-2015 15:22 | Tolik | Status | feedback => assigned |
08-09-2015 15:24 | Tolik | Note Added: 0016437 | |
08-09-2015 15:25 | zed | Note Added: 0016438 | |
08-09-2015 15:25 | zed | File Deleted: SASPlanet.zip | |
08-09-2015 15:25 | zed | File Deleted: Логи.zip | |
08-09-2015 15:26 | zed | Status | assigned => resolved |
08-09-2015 15:26 | zed | Fixed in Version | => 150915 |
08-09-2015 15:26 | zed | Resolution | open => fixed |
Notes |
|
|
Подтверждаю. Выбор отображаемых меток программа делает сама по непонятному алгоритму. |
|
|
(0016417)
|
zed
|
06-09-2015 18:00
|
|
Только при экспорте? Если базу создавать и заполнять вручную, проблем нет? |
|
|
(0016418)
|
Tolik
|
06-09-2015 19:07
(edited on: 06-09-2015 19:12) |
|
Ну, если добавить пару категорий, то нормально.
Если добавить пару десятков - не знаю.
Наверно, баг в экспорте.
|
|
|
(0016419)
|
zed
|
07-09-2015 06:50
|
|
Предлагаю сразу после экспорта, заглянуть в БД при помощи какой-нибудь внешней утилиты. Смотреть надо в таблицу CategoryView - там в колонке cvVisible будут булевые значения 0 - категория не видна, 1 - видна. Если категория в таблице отсутствует, то она видна по-умолчанию, т.е. пользователь ешё ни разу не изменял видимость этой категории вручную.
Соответственно, после импорта, эта таблица должна быть пустой. После отключения видимости у всех категорий, таблица заполнится категориями и в колонке cvVisible будет 0. Если какую-то категорию сделать видимой, там станет 1.
Если в БД всё именно так, значит проблема где-то в кэшировании на стороне SAS.
P.S. Таблицу CategoryView или её содержимое можно смело удалять вручную - она будет создана автоматически при новом запуске SAS. |
|
|
(0016420)
|
zed
|
07-09-2015 06:57
|
|
Я выполняю все шаги описанные в "Шаги по воспроизведению" и у меня не воспроизводится. Может быть есть какая-то зависимость от количества категорий в корневой категории? |
|
|
|
Для ускорения процесса хорошо бы ссылку на внешнюю утилиту. |
|
|
(0016422)
|
zed
|
07-09-2015 07:44
|
|
|
|
(0016423)
|
Papazol
|
07-09-2015 08:17
(edited on: 07-09-2015 08:23) |
|
Ну в общем, так. Открыв БД сразу после экспорта, видим у всех категорий cvVisible=1. Потом в SASPlanet'е убираем/ставим галки на нужных категориях (я оставил видимыми две). Закрываем SASPlanet'у. Studio показывает, что у всех категорий cvVisible=0, а у двух (они в таблице последние) - 1. К сожалению, непонятно, какие именно категории имеют 1. Затем открываем SASPlanet'у. Вылезают кучи меток, которые не были отмечены галками. Если бы программа считывала видимость меток из БД, то показывала бы те две, у которых 1.
Непонятно, почему в таблице Category содержится (в моём случае) 35 категорий (они полностью соответствуют исходному списку из sml), а в таблице CategoryView только 20.
|
|
|
(0016424)
|
zed
|
07-09-2015 08:21
|
|
>Открыв БД сразу после экспорта, видим у всех категорий cvVisible=1
Странно, у меня таблица сразу после экспорта пустая.
>К сожалению, непонятно, какие именно категории имеют 1.
В колонке cvCategory записаны id категорий, по которым их можно найти в таблице Category.
>Если бы программа считывала видимость меток из БД, то показывала бы те две, у которых 1.
Ок, надо смотреть. Плохо, что оно ещё и не всегда воспроизводится. |
|
|
|
Количество категорий в двух таблицах разное... |
|
|
(0016426)
|
zed
|
07-09-2015 08:30
|
|
В CategoryView содержатся записи только для тех категорий, которым вручную была изменена видимость. Как я уже писал, если категории в этой таблице нету, то она видима по дефолту. И теперь становится вдвойне непонятно: выходит что при экспорте некоторые категории таки попадают в эту таблицу, хотя не должны.
После экспорта все категории должны быть видимы, поскольку видимость категории (и метки) завязана на конкретного пользователя. А при импорте из sml никакой информации о юзере не передаётся, потому и устанавлявается видимость всех меток/категорий вне зависимости от того в каком они были состоянии в исходном sml. |
|
|
|
> выходит что при экспорте некоторые категории таки попадают в эту таблицу, хотя не должны
Это не так, потому что при экспорте я выбирал "Экспорт всех меток и категорий". Все они и экспортировались.
Разве установка/снятие галки "Все" не приводит к изменению видимости вручную? Изначально видимы действительно все, но если пару раз ткнуть "Все", галки со всех снимаются, следовательно, происходит изменение состояния для всех, и это должно записываться в БД. |
|
|
(0016431)
|
zed
|
07-09-2015 13:13
|
|
>Это не так
Что-то я не понял. Вы же написали: "Открыв БД сразу после экспорта, видим у всех категорий cvVisible=1". |
|
|
(0016432)
|
zed
|
07-09-2015 14:20
(edited on: 07-09-2015 14:29) |
|
Ок, Tolik, Papazol воспроизведите баг на своей стороне вот на этом exe: https://yadi.sk/d/dwwQyaxsivVVB и пришлите мне все логи (появятся текстовые файлы в корне с программой).
|
|
|
|
У меня получилось два лога. Они в архиве.
Насчёт "Это не так". Действительно, если при экспорте выбрать все метки (независимо от видимости), то не должно быть таких, которые экспортировались, хотя не должны были. Все были должны. И, если исходить из обозначенной логики процесса, в данном случае всё происходит правильно. Неправильно начинает быть потом, когда мы вручную пытаемся установить видимость нужных нам меток.
PS Два лога - это не всё. Получил ещё третий. Первый - сразу после экспорта БД. Программу закрыл, затем снова открыл. Подключил БД SQLite. Все метки отмечены как видимые (это правильно). Убрал галки со всех и установил на две, которые нужны. Программу закрыл. Появился второй лог. Снова открыл программу. В списке меток отмечено не две, а значительно больше (но не все). Закрыл программу. Появился третий лог. Логи в архиве Логи.zip. |
|
|
(0016434)
|
zed
|
07-09-2015 20:43
|
|
Да, логи помогли - нашёл баг в методе TMarkCategoryDbImplORMHelper.SetAllCategoriesVisibleSQL. Завтра исправлю. |
|
|
(0016435)
|
zed
|
08-09-2015 15:04
|
|
|
|
(0016436)
|
Tolik
|
08-09-2015 15:22
|
|
Проблема решена, спасибо. |
|
|
(0016437)
|
Tolik
|
08-09-2015 15:24
|
|
Также ушла проблема, что после перезапуска нет ни одной базы. |
|
|
(0016438)
|
zed
|
08-09-2015 15:25
|
|
>Также ушла проблема, что после перезапуска нет ни одной базы.
Не трогал, так что она скорее всего спряталась, а не ушла :) |
|