Anonymous | Login | Signup for a new account | 21-11-24 16:20 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
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) закрываем первую копию. открываем во второй копии параметры меток и видим что метки исчезли.. и вот тут одно но: файл с метками пока не закрыть программу , всё ещё содержит данные, а как только мы программу закрываем, она перезаписывает метки! | ||||||||
Additional Information | предложение или задавать вопрос при закрытии программы с пустыми метками и наличием "набитого" marks.sml или не перезаписывать его(что неправильно) или создавать что нибудь типа .loc файла на время монопольной работы с файлом меток или не давать запускать вторую копию программы из одного и того же места с одним и тем же названием .exe предложения рассматриваются. подтверждения бага ожидаются. | ||||||||
Tags | доступ | ||||||||
Attached Files | |||||||||
Notes | |
(0004185) bk99 (reporter) 26-10-2011 14:51 |
Во ты попал! И что - все свои метки похерил?! Сочувствую! Примерил ситуёвину на себя и содрогнулся! (Проверить не решился) |
(0004186) Garl (manager) 26-10-2011 15:55 |
это уже воспроизведение бага к которому был готов. ситуацию спасло то что метку были заблаговременно скопированы на домашний комп. |
(0004187) zed (manager) 26-10-2011 16:42 |
>не давать запускать вторую копию программы Сделать в виде опции, включённой по умолчанию. Причём, не просто с одним и тем же именем exe или одной и той же папки, а глобально: http://www.delphisources.ru/pages/faq/base/only_one_app_instance2.html |
(0004188) Garl (manager) 26-10-2011 16:54 edited on: 26-10-2011 17:15 |
глобально не сильно вариант. очень часто нужно 2-3 копии запущенных их разных мест да и разные версии с разным именем живут в одной папке и юзают один кэш. |
(0004189) Fetser (reporter) 26-10-2011 17:11 |
Совершенно верно метки удаляются если две копии закрывать в том же порядке что и запускаешь. Если сначала закрыть вторую копию потом первую метки остаются и такая неприятность только в последней ночной сборке. в версии 111022.4467 всё нормально |
(0004190) vasketsov (manager) 26-10-2011 17:36 |
А какие именно операции при запуске программы требуют монопольный доступ к меткам и почему? Налицо два читателя меток, которые по идее не должны друг другу гадить. Мало ли какое приложение ещё захочет вычитать из-под саса метки. |
(0004191) Garl (manager) 26-10-2011 17:54 |
ну по идее пока одна читает(считай монопольно) вторая не дожидается файла с метками и думает что меток нету. закрываем первую (с метками) она записывает свои метки, закрываем вторую (без меток) и нате получите! вот тут бы проверка на занятость фала бы не помешала. |
(0004192) vasketsov (manager) 26-10-2011 19:32 |
>читает(считай монопольно) не вижу логики в монопольном чтении меток при старте программы >проверка на занятость фала бы не помешала ну в общем случае конечно не помешала бы, но это как бы уже немного другой вопрос (не вторичный, не первичный, а просто ортогональный ненужной блокировке меток от параллельного чтения) |
(0004193) Tolik (manager) 27-10-2011 06:37 |
Надо запрещать запуск двух программ (даже с разным именем) из одной папки, а из разных папок запрещать не надо. |
(0004194) Snake (reporter) 27-10-2011 06:57 |
Одновременное использование файла с метками может произвести к путанице. Например две программы №1 и №2 прочитали файл с метками. Далее в программе №1 добавили метку, после чего закрываем программу №1 и она сохраняет "свои" метки, а программа №2 об добавленой метке ничего не знает и при закрытии перезапишет файл "своими" метками. Таким образом добавленая метка пропала. А если добавлялись и удалялись метки в обоих программах, то вообще кошмар. Тут на мой взгляд нужно: 1.либо существенно усложнять программу, назначать главную копию программы (сервер) и она будет обрабатывать сообщения об добавлении/удалении/изменении метки и предавать информацию в другие копии программы (клиенты).(усложнение это всегда новые ошибки, а иногда переписывание огромной части программы, что в свою очередь опять приводит к новым ошибкам) 2.либо все изменения сохранять в дополнительный временный файл котрый будет доступен всем копиям, а копия программы которая будет закрыта последней "решает", какие изменения записать в конечный файл.(тоже достаточное усложнение) 3.либо первая программа имеет полный доступ к метка, а все копии только чтение. (самый простой вариант), только решить вопрос с проверкой на занятость файла и дождатся пока освободится. |
(0004196) zed (manager) 27-10-2011 07:00 |
4. Либо хранить метки в базе данных, поддерживающей многопользовательский доступ к меткам. |
(0004203) Tolik (manager) 27-10-2011 08:08 |
№3 вполне достаточно. |
(0004204) Garl (manager) 27-10-2011 08:33 |
4 интереснее. |
(0004205) vdemidov (manager) 27-10-2011 08:38 |
>4 интереснее. И какой сервер баз данных ставить пользователю? Вообще подсистему меток нужно выносить в плагины. Я в последнее много делал в этом направлении, но пока далеко не все что нужно для этого. |
(0004207) zed (manager) 27-10-2011 11:51 edited on: 27-10-2011 11:52 |
>сервер баз данных Если метки в сети и это некая корпоративная сеть, то однозначно MySQL, если просто нужно запускать несколько копий на одном компе, то можно и без сервера - BerkeleyDB. Кстати, начал эту берклевскую базу подробнее изучать и буду наверное пробовать делать кэш на ней. >Вообще подсистему меток нужно выносить в плагины Да, это лучше всего, так же как и подсистему кэша с подсистемой качалки :) |
(0004208) Fetser (reporter) 27-10-2011 12:23 |
После реализации хотелки 0000033 (Загрузка меток через командную строку) Возможно хранение меток в виде файлов KMZ сортируя их по папкам. Конечно при возможности импорта сразу нескольких KMZ одновременно. Тогда необходимость в самой базе меток становится не так актуальна. Выигрыш и в скорости работы с метками и в многопользовательском доступе (если разные пользователи одновременно работают с разными KMZ они не мешают друг другу.)вероятность одновременного сохранения KMZ с одним именем снижается в разы. |
Users who viewed this issue | |
User List | Anonymous (2807x), hrucker (1x) |
Total Views | 2808 |
Last View | 21-11-2024 16:20 |
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 | View Revisions |
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 | View Revisions |
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 | View Revisions |
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 |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |