Anonymous | Login | Signup for a new account | 21-11-24 12:47 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 | ||||
0003105 | SAS.Планета | [All Projects] Баг | public | 12-07-2016 11:18 | 17-03-2017 11:04 | ||||
Reporter | dkxce | ||||||||
Assigned To | vdemidov | ||||||||
Priority | normal | Severity | major | Reproducibility | always | ||||
Status | closed | Resolution | not fixable | ||||||
Platform | Windows | OS | XP | OS Version | SP3 | ||||
Product Version | 160707 | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0003105: Ошибка при открытие базы marks.sml | ||||||||
Description | Ошибка при открытии базы объектов marks.sml от версии 151111 | ||||||||
Steps To Reproduce | Распаковал версию 160707 в пустую папку. Решил добавить объекты из предыдущей версии: Управление метками -> Добавить базу, тип SML -> файл marks.sml от версии 1511 В результате данные не импортируются, а выводится ошибка: EAccessViolation: Access Violation at address 4DB26281 in module 'midas.dll'. Write of address 30343239 Скриншот, файлы marks.sml и Categorymarks.sml во вложении | ||||||||
Additional Information | 1. Если приложение после этой ошибки закрыть, то окно исчезает, но процесс остается висеть пока его не убьешь. 2. Если после ошибки импортированные метки (пустую базу) не удалить и оставить текущей выбранной, то ошибка будет возникать при запуске приложения. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | error.rar [^] (357,214 bytes) 12-07-2016 11:18 midas.D7.zip [^] (144,024 bytes) 13-07-2016 04:17 midas.D2007.zip [^] (168,343 bytes) 13-07-2016 04:17 midas.dll [^] (293,376 bytes) 13-07-2016 09:18 | ||||||||
Notes | |
(0017511) zed (manager) 13-07-2016 04:16 |
Странно, у меня ваши метки импортировались без проблем (Win8). Возможно что-то не так с midas.dll и она не поддерживает WinXP. Попробуйте заменить её версией из аттача midas.D2007.zip (версия от Delphi 2007) или midas.D7.zip (версия от Delphi 7). В релизе лежит версия от Delphi XE2. |
(0017512) dkxce (reporter) 13-07-2016 04:45 |
Подменял библиотеку от версии 151111, из аттача midas.D2007.zip и midas.D7.zip - та же проблема |
(0017513) zed (manager) 13-07-2016 04:48 |
Тогда скачайте ночную сборку и запустите дебажную версию. Она сгенерирует *.elf файл об ошибке. Приложите его сюда. Ночнушку распаковывайте в отдельную папку и тестируйте с оригинальной dll и с версией от D2007. И приложите скриншот с настройками, когда вы добавляете sml базу. |
(0017517) dkxce (reporter) 13-07-2016 08:44 |
Запустил дебажную версию, открыл EurekaLog, подключил отладчик. Оказалось библиотека загружена из System32 и зависла в памяти и именно она подтягивается при импорте меток. Файл не удаляется. Посмотрел - никто большее библиотеку не юзает. Тупо выгрузил. Заменил на более новую версию - все заработало. Запустил на другой машине где была старая версия программы - опять та же ошибка, поменял dll - зараб отало. В чем причина ХЗ. Вечером попробую на еще одной машине. |
(0017518) zed (manager) 13-07-2016 08:48 |
А что за версия лежала в System32? |
(0017519) dkxce (reporter) 13-07-2016 08:48 |
от 2008г |
(0017520) zed (manager) 13-07-2016 08:49 |
От Delphi 7? Приаттачьте, хочу посмотреть на неё. |
(0017521) dkxce (reporter) 13-07-2016 09:18 |
Добавил |
(0017522) zed (manager) 13-07-2016 09:57 |
У вас версия от Delphi 6. И оказывается, что SAS не подхватывает либу из своей папки, а грузит её из System32, если та была зарегистрирована при помощи regsvr32. Вот и нашла коса на камень. |
(0017523) dkxce (reporter) 13-07-2016 11:55 |
Понял, сделаю unregister и буду ждать, может какое еще приложение отвалится. P.S: А если динамически грузить через LoadLibrary/FreeLibrary? |
(0017524) zed (manager) 13-07-2016 13:41 |
Нет, не помогает. Хоть либа и загружается (видно в дебагере), внутрях Delphi оно всё равно пытается загрузить её из System32 и игнорирует то, что было загружено руками. В качестве варианта, можно ещё попробовать как-то слинковать midaslib.dcu от D2007, если это возможно. |
(0017525) vdemidov (manager) 14-07-2016 13:42 |
А оно нам надо? Может закрываем как нерешаемый баг? Людей с установленной Delphi 6 вряд ли много, а те у кого она есть могут и сами разобраться, если сильно нужно. Тем более у нас уже рекомендуемая база меток SQLite. ЗЫЖ А от midas.dll я давно предлагал избавляться. Простой парсер xml для импорта/экспорта будет работать немногим хуже. |
(0017526) zed (manager) 14-07-2016 14:10 |
Эту либу могут ставить приложения написанные на Delphi/C++, т.е. она ставится не только вместе с Delphi. Поэтому, надо подумать про вариант с dcu. Может и топикстартер поможет чем. Судя по комментариям, кое-что в программировании он понимает. > А от midas.dll я давно предлагал избавляться. Мало предложить, а вот взять и избавиться - совсем другое дело. Там вообще трудность не столько в парсере xml, сколько в том, что всю логику sml придётся переделывать, чтобы выпилить датасет. |
(0017527) vdemidov (manager) 14-07-2016 14:17 |
> всю логику sml придётся переделывать, чтобы выпилить датасет. Да какая там логика? Там только генерация ID при помощи автоинкрементного поля. Вся остальная логика на структурах в памяти, а в датасет только сохранение выполняется. |
(0017528) zed (manager) 14-07-2016 14:24 |
Поиск и фильтрация датасетом производится. Переписывать придётся много. |
(0017529) vdemidov (manager) 14-07-2016 15:48 |
Так я же предлагаю только импорт и экспорт переписывать, а там все равно одноразовое чтение или запись. Тогда даже на системах с проблемами в midas.dll можно будет импортировать данные из старой версии. |
(0017530) koch (reporter) 14-07-2016 21:08 |
Похожая история в WinXP: в свежераспакованную 160707 кинул Categorymarks.sml, marks.sml и SASPlanet.ini. После запуска выскочила ошибка "Exception: Error loading MIDAS.DLL" Решил так: в предыдущей версии конвертировал в базу меток в SQLite3 (marks.db3) и кинул в папку эту версию меток. Минус процедуры - все метки стали отображаться (ранее многие были отключены). Также на всякий случай создал новый ini. |
(0017668) T_Im (reporter) 20-10-2016 13:03 edited on: 20-10-2016 13:31 |
Соображения насчет бага. Новые версии прекрасно работают со старым форматом, просто потерялась портативность папки САС. http://www.sasgis.org/forum/viewtopic.php?f=2&t=1546&p=43987#p43986 в версиях САС 160606 (без бага) 160707 (появился баг) 161017 (текущая) лежит один и тот же midas.dll => причина точно не в версии библиотеки. Скорее всего между версиями поменялся механизм поиска и регистрации библиотеки. На всякий случай уточню, что в реестре у меня не было никаких других путей к midas.dll кроме путей папок САС. На системном диске библиотека тоже отстуствует. |
(0017669) vdemidov (manager) 20-10-2016 14:16 |
Поменялось в недрах делфи. Так как сменилась версия, которой мы пользуемся. Если придумаете как вернуть старое поведение - скажите. |
(0017670) vdemidov (manager) 20-10-2016 14:26 |
С портативностью ничего не случилось. Если у вас не установлена делфи старой версии, то все нормально будет. Если установлена, то выполните дерегистрацию для midas.dll и все опять будет портативно. |
(0017671) T_Im (reporter) 20-10-2016 15:34 edited on: 20-10-2016 15:42 |
В корне неверное понимание причин проблемы. Смотрите. Вчера почистил все упоминания о мидас из реестра. Запускались новые версии САС из 4-х папок (все они сейчас работают нормально со старым форматом меток), никаких Дельфей не ставил. После их запуска имею в реесте: появились следующие разделы со словом мидас: Borland.Midas_DatapacketRead.1 Borland.Midas_DatapacketWrite.1 Borland.Midas_DSBase Borland.Midas_DSBase.1 Borland.Midas_DSCursor Borland.Midas_DSCursor.1 внутри этих разделов, в ключах прописаны следующие классы {9E8D2FA1-591C-11D0-BF52-0020AF32BD64} {9E8D2FA3-591C-11D0-BF52-0020AF32BD64} {9E8D2FA7-591C-11D0-BF52-0020AF32BD64} {9E8D2FA5-591C-11D0-BF52-0020AF32BD64} теперь ищу ключи со словом мидас вуа ля! в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\ видим в путях ключей все эти 4 класса, в ключах HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{номер класса}\InProcServer32\(default) во всех 4-х классах в указанном выше ключе прописан один и тот же путь к MIDAS.DLL - откуда САС была запущена в первый раз. Угадайте, что теперь произойдет, если переименовать эту самую папку, и запустить любой из 4-х клонов САС. Возможно для решения этой проблемы помогут эти ссылки: http://delphimaster.net/view/10-1066399363 http://www.sql.ru/forum/587522/midas-dll-otsutsvie-na-kliente Старая версия, по видимому, нормально "перерегистрировала" библиотеку, если не находила ее по указанному в реестре пути, в новом дельфи, похоже, что то поломали. Но, ИМХО, регистрировать в системе библиотеку - есть зло. Уж лучше всунуть ее статически внутрь программы. |
(0017672) vdemidov (manager) 20-10-2016 15:57 |
Значит у вас еще что-то осталось в реестре, что заставляет библиотеку или ее делфовскую обвязку добавлять это все в реестр. У меня на машине без делфи запускается свежая ночнушка и не оставляет никаких следов midas в реестре. И естественно прекрасно запускается после переименования папки. В общем, если накопаете что-то интересное по ссылкам, то сообщите. Ну или можете заняться и сделать хотя бы парсер для импорта\экспорта sml без использования midas.dll. Тогда можно будет вообще отказаться от поддержки базы в таком формате ибо он весьма ущербный и небезопасный. |
(0017673) T_Im (reporter) 20-10-2016 16:21 |
>Значит у вас еще что-то осталось в реестре, что заставляет библиотеку или ее делфовскую обвязку добавлять это все в реестр. >У меня на машине без делфи запускается свежая ночнушка и не оставляет никаких следов midas в реестре. WindowsXPsp3. Возможно, новые версии дельфи перестали с ней полностью дружить. >В общем, если накопаете что-то интересное по ссылкам, то сообщите. Я в Дельфях не силен. Но в последнем сообщении тут http://www.sql.ru/forum/587522/midas-dll-otsutsvie-na-kliente рекомендуют делать uses MidasLib, CRTL; Вы могли бы скомпилировать для тестов САС с таким вариантом подключения библиотеки? |
(0017674) vdemidov (manager) 20-10-2016 19:40 |
Давно был такой коммит, который как раз отключал MidasLib из uses под XE2 https://bitbucket.org/sas_team/sas.planet.src/commits/f24fb35d7bba7178188ff11fee4f40d64e6411a8 |
(0017675) T_Im (reporter) 21-10-2016 14:57 |
Увы, одно фиксится, другое - ломается. Значит, пока нормального способа пофиксить не найдено, просто вынести в ридми ссылку сюда на эту проблему и возможные решения. Самый простой способ (если больше нет софта с этой библиотекой) - кинуть midas.dll в system32 и поменять все найденный пути к ней на системный, либо, после каждого переименования "первой" папки САС, менять в реестре пути к midas.dll. Но также может быть нерешаемая ситуация, если запускать под WinXPsp3 SAS под ограниченным в правах юзером (у библиотеки просто не хватит прав зарегистрироваться). |
(0017862) zed (manager) 17-03-2017 11:04 |
Поскольку баг в midas.dcu присутствует только в XE2..XE5 (из-за которого и приходится использовать внешнюю dll), то проблема автоматом решится с переходом на более новый компилятор. |
Users who viewed this issue | |
User List | Anonymous (4077x), dozhd (1x), hrucker (1x), RedRat (1x), vdemidov (39x), zed (34x), alexandr-dolgov (1x), AlexRus (1x), cycler (1x), Nikolai (2x), T_Im (18x), bk99 (3x), Garl (1x), VMatveev (3x), Parasite (1x), gma (1x), Tolik (3x), dkxce (37x), koch (2x), adien (1x) |
Total Views | 4228 |
Last View | 21-11-2024 12:47 |
Issue History | |||
Date Modified | Username | Field | Change |
12-07-2016 11:18 | dkxce | New Issue | |
12-07-2016 11:18 | dkxce | File Added: error.rar | |
12-07-2016 11:56 | dkxce | Note Added: 0017507 | |
13-07-2016 03:48 | zed | Project | Домен, сайт, форум, багтрекер => SAS.Планета |
13-07-2016 04:16 | zed | Note Added: 0017511 | |
13-07-2016 04:17 | zed | File Added: midas.D7.zip | |
13-07-2016 04:17 | zed | File Added: midas.D2007.zip | |
13-07-2016 04:18 | zed | Product Version | => 160707 |
13-07-2016 04:18 | zed | Note Deleted: 0017507 | |
13-07-2016 04:19 | zed | Status | new => feedback |
13-07-2016 04:45 | dkxce | Note Added: 0017512 | |
13-07-2016 04:45 | dkxce | Status | feedback => new |
13-07-2016 04:48 | zed | Note Added: 0017513 | |
13-07-2016 06:46 | vdemidov | Status | new => feedback |
13-07-2016 08:44 | dkxce | Note Added: 0017517 | |
13-07-2016 08:44 | dkxce | Status | feedback => new |
13-07-2016 08:48 | zed | Note Added: 0017518 | |
13-07-2016 08:48 | dkxce | Note Added: 0017519 | |
13-07-2016 08:49 | zed | Note Added: 0017520 | |
13-07-2016 09:18 | dkxce | File Added: midas.dll | |
13-07-2016 09:18 | dkxce | Note Added: 0017521 | |
13-07-2016 09:57 | zed | Note Added: 0017522 | |
13-07-2016 11:55 | dkxce | Note Added: 0017523 | |
13-07-2016 13:41 | zed | Note Added: 0017524 | |
14-07-2016 13:42 | vdemidov | Note Added: 0017525 | |
14-07-2016 14:10 | zed | Note Added: 0017526 | |
14-07-2016 14:17 | vdemidov | Note Added: 0017527 | |
14-07-2016 14:24 | zed | Note Added: 0017528 | |
14-07-2016 15:48 | vdemidov | Note Added: 0017529 | |
14-07-2016 21:08 | koch | Note Added: 0017530 | |
20-10-2016 13:03 | T_Im | Note Added: 0017668 | |
20-10-2016 13:31 | T_Im | Note Edited: 0017668 | View Revisions |
20-10-2016 14:16 | vdemidov | Note Added: 0017669 | |
20-10-2016 14:26 | vdemidov | Note Added: 0017670 | |
20-10-2016 15:34 | T_Im | Note Added: 0017671 | |
20-10-2016 15:36 | T_Im | Note Edited: 0017671 | View Revisions |
20-10-2016 15:38 | T_Im | Note Edited: 0017671 | View Revisions |
20-10-2016 15:42 | T_Im | Note Edited: 0017671 | View Revisions |
20-10-2016 15:57 | vdemidov | Note Added: 0017672 | |
20-10-2016 16:21 | T_Im | Note Added: 0017673 | |
20-10-2016 19:40 | vdemidov | Note Added: 0017674 | |
21-10-2016 14:57 | T_Im | Note Added: 0017675 | |
17-03-2017 10:38 | vdemidov | Status | new => resolved |
17-03-2017 10:38 | vdemidov | Resolution | open => not fixable |
17-03-2017 10:38 | vdemidov | Assigned To | => vdemidov |
17-03-2017 10:38 | vdemidov | Status | resolved => closed |
17-03-2017 11:04 | zed | Note Added: 0017862 |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |