SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0001023 | SAS.Планета | [All Projects] Баг | public | 26-10-2011 13:56 | 10-10-2012 11:43 |
|
Reporter | Garl | |
Assigned To | vdemidov | |
Priority | urgent | Severity | major | Reproducibility | sometimes |
Status | closed | Resolution | fixed | |
Platform | Windows | OS | 7 | OS Version | Professional |
Product Version | 110418 | |
Target Version | 120808 | Fixed in Version | 120808 | |
|
Summary | 0001023: При одновременном запуске двух копий программы удаляются все метки |
Description | по пунктам:
1) из quicklaunch запускается по двойному клику 2 копии программы.
естественно файл с метками огромный и машина загружена конвертированием и файловыми операциями по самые гланды
обе копии запускаются крайне медленно порядка 10-15 секунд
в иотоге запускаются обе
2) закрываем первую копию. открываем во второй копии параметры меток и видим что метки исчезли..
и вот тут одно но:
файл с метками пока не закрыть программу , всё ещё содержит данные, а как только мы программу закрываем, она перезаписывает метки!
|
Steps To Reproduce | |
Additional Information | предложение или задавать вопрос при закрытии программы с пустыми метками и наличием "набитого" marks.sml
или не перезаписывать его(что неправильно)
или создавать что нибудь типа .loc файла на время монопольной работы с файлом меток
или не давать запускать вторую копию программы из одного и того же места с одним и тем же названием .exe
предложения рассматриваются.
подтверждения бага ожидаются. |
Tags | доступ |
Relationships | |
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
26-10-2011 13:56 | Garl | New Issue | |
26-10-2011 14:51 | bk99 | Note Added: 0004185 | |
26-10-2011 15:55 | Garl | Note Added: 0004186 | |
26-10-2011 16:42 | zed | Note Added: 0004187 | |
26-10-2011 16:54 | Garl | Note Added: 0004188 | |
26-10-2011 17:11 | Fetser | Note Added: 0004189 | |
26-10-2011 17:15 | Garl | Note Edited: 0004188 | bug_revision_view_page.php?bugnote_id=4188#r2118 |
26-10-2011 17:36 | vasketsov | Note Added: 0004190 | |
26-10-2011 17:54 | Garl | Note Added: 0004191 | |
26-10-2011 19:32 | vasketsov | Note Added: 0004192 | |
27-10-2011 06:37 | Tolik | Note Added: 0004193 | |
27-10-2011 06:57 | Snake | Note Added: 0004194 | |
27-10-2011 07:00 | zed | Note Added: 0004196 | |
27-10-2011 08:08 | Tolik | Note Added: 0004203 | |
27-10-2011 08:33 | Garl | Note Added: 0004204 | |
27-10-2011 08:38 | vdemidov | Note Added: 0004205 | |
27-10-2011 11:51 | zed | Note Added: 0004207 | |
27-10-2011 11:52 | zed | Note Edited: 0004207 | bug_revision_view_page.php?bugnote_id=4207#r2122 |
27-10-2011 12:23 | Fetser | Note Added: 0004208 | |
29-10-2011 08:28 | gpsMax | Summary | при одновременном запуске двух копий программы удаляются все метки => При одновременном запуске двух копий программы удаляются все метки |
29-10-2011 08:33 | gpsMax | Additional Information Updated | bug_revision_view_page.php?rev_id=2136#r2136 |
28-06-2012 22:09 | vdemidov | Status | new => resolved |
28-06-2012 22:09 | vdemidov | Fixed in Version | => 120808 |
28-06-2012 22:09 | vdemidov | Resolution | open => fixed |
28-06-2012 22:09 | vdemidov | Assigned To | => vdemidov |
28-06-2012 22:10 | vdemidov | Product Version | .Nightly => 110418 |
28-06-2012 22:10 | vdemidov | Target Version | => 120808 |
07-07-2012 11:56 | gpsMax | Tag Attached: доступ | |
10-10-2012 11:43 | Tolik | Status | resolved => closed |
Notes |
|
(0004185)
|
bk99
|
26-10-2011 14:51
|
|
Во ты попал!
И что - все свои метки похерил?!
Сочувствую!
Примерил ситуёвину на себя и содрогнулся!
(Проверить не решился) |
|
|
(0004186)
|
Garl
|
26-10-2011 15:55
|
|
это уже воспроизведение бага к которому был готов.
ситуацию спасло то что метку были заблаговременно скопированы на домашний комп. |
|
|
(0004187)
|
zed
|
26-10-2011 16:42
|
|
>не давать запускать вторую копию программы
Сделать в виде опции, включённой по умолчанию. Причём, не просто с одним и тем же именем exe или одной и той же папки, а глобально: http://www.delphisources.ru/pages/faq/base/only_one_app_instance2.html |
|
|
(0004188)
|
Garl
|
26-10-2011 16:54
(edited on: 26-10-2011 17:15) |
|
глобально не сильно вариант. очень часто нужно 2-3 копии запущенных их разных мест
да и разные версии с разным именем живут в одной папке и юзают один кэш.
|
|
|
(0004189)
|
Fetser
|
26-10-2011 17:11
|
|
Совершенно верно метки удаляются если две копии закрывать в том же порядке что и запускаешь. Если сначала закрыть вторую копию потом первую метки остаются и такая неприятность только в последней ночной сборке.
в версии 111022.4467 всё нормально |
|
|
|
А какие именно операции при запуске программы требуют монопольный доступ к меткам и почему? Налицо два читателя меток, которые по идее не должны друг другу гадить. Мало ли какое приложение ещё захочет вычитать из-под саса метки. |
|
|
(0004191)
|
Garl
|
26-10-2011 17:54
|
|
ну по идее пока одна читает(считай монопольно) вторая не дожидается файла с метками и думает что меток нету. закрываем первую (с метками) она записывает свои метки, закрываем вторую (без меток) и нате получите!
вот тут бы проверка на занятость фала бы не помешала. |
|
|
|
>читает(считай монопольно)
не вижу логики в монопольном чтении меток при старте программы
>проверка на занятость фала бы не помешала
ну в общем случае конечно не помешала бы, но это как бы уже немного другой вопрос (не вторичный, не первичный, а просто ортогональный ненужной блокировке меток от параллельного чтения) |
|
|
(0004193)
|
Tolik
|
27-10-2011 06:37
|
|
Надо запрещать запуск двух программ (даже с разным именем) из одной папки, а из разных папок запрещать не надо. |
|
|
(0004194)
|
Snake
|
27-10-2011 06:57
|
|
Одновременное использование файла с метками может произвести к путанице.
Например две программы №1 и №2 прочитали файл с метками.
Далее в программе №1 добавили метку, после чего закрываем программу №1 и она сохраняет "свои" метки, а программа №2 об добавленой метке ничего не знает и при закрытии перезапишет файл "своими" метками. Таким образом добавленая метка пропала.
А если добавлялись и удалялись метки в обоих программах, то вообще кошмар.
Тут на мой взгляд нужно:
1.либо существенно усложнять программу, назначать главную копию программы (сервер) и она будет обрабатывать сообщения об добавлении/удалении/изменении метки и предавать информацию в другие копии программы (клиенты).(усложнение это всегда новые ошибки, а иногда переписывание огромной части программы, что в свою очередь опять приводит к новым ошибкам)
2.либо все изменения сохранять в дополнительный временный файл котрый будет доступен всем копиям, а копия программы которая будет закрыта последней "решает", какие изменения записать в конечный файл.(тоже достаточное усложнение)
3.либо первая программа имеет полный доступ к метка, а все копии только чтение. (самый простой вариант), только решить вопрос с проверкой на занятость файла и дождатся пока освободится. |
|
|
(0004196)
|
zed
|
27-10-2011 07:00
|
|
4. Либо хранить метки в базе данных, поддерживающей многопользовательский доступ к меткам. |
|
|
(0004203)
|
Tolik
|
27-10-2011 08:08
|
|
|
|
(0004204)
|
Garl
|
27-10-2011 08:33
|
|
|
|
|
>4 интереснее.
И какой сервер баз данных ставить пользователю? Вообще подсистему меток нужно выносить в плагины. Я в последнее много делал в этом направлении, но пока далеко не все что нужно для этого. |
|
|
(0004207)
|
zed
|
27-10-2011 11:51
(edited on: 27-10-2011 11:52) |
|
>сервер баз данных
Если метки в сети и это некая корпоративная сеть, то однозначно MySQL, если просто нужно запускать несколько копий на одном компе, то можно и без сервера - BerkeleyDB. Кстати, начал эту берклевскую базу подробнее изучать и буду наверное пробовать делать кэш на ней.
>Вообще подсистему меток нужно выносить в плагины
Да, это лучше всего, так же как и подсистему кэша с подсистемой качалки :)
|
|
|
(0004208)
|
Fetser
|
27-10-2011 12:23
|
|
После реализации хотелки 0000033 (Загрузка меток через командную строку) Возможно хранение меток в виде файлов KMZ сортируя их по папкам. Конечно при возможности импорта сразу нескольких KMZ одновременно. Тогда необходимость в самой базе меток становится не так актуальна.
Выигрыш и в скорости работы с метками и в многопользовательском доступе (если разные пользователи одновременно работают с разными KMZ они не мешают друг другу.)вероятность одновременного сохранения KMZ с одним именем снижается в разы. |
|