Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi. Linux. Баги. / 25 сообщений из 76, страница 1 из 4
06.06.2020, 21:12
    #39966783
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Кто-нибудь может предложть способ временно обойти проблему описанную здесь:
https://quality.embarcadero.com/browse/RSP-29358

Как бы критично становится.

На всякий, если у кого нет доступа:

Program crash on exit after library load/unload on Linux

Runtime error 231 at 00007F974BE78B8A

Both library and main program use package RTL

libbug1.7z
...
Рейтинг: 0 / 0
07.06.2020, 11:20
    #39966820
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Maxim Rusov,
Где-то валятся Exceptions. ErrorCode = 231 - Too many nested exceptions
Смотри в отладчике.
...
Рейтинг: 0 / 0
07.06.2020, 12:26
    #39966828
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Изначально ошибка Segmentation fault где-то в System, при финализации модулей.
Исходники посмотреть сейчас не могу - поставил community edition
...
Рейтинг: 0 / 0
07.06.2020, 12:47
    #39966831
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Maxim Rusov
Исходники посмотреть сейчас не могу - поставил community edition

Так CE с исходниками.
...
Рейтинг: 0 / 0
07.06.2020, 13:35
    #39966848
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Не знаю. У меня - без.
...
Рейтинг: 0 / 0
07.06.2020, 14:07
    #39966852
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Kazantsev Alexey
Maxim Rusov
Исходники посмотреть сейчас не могу - поставил community edition

Так CE с исходниками.

В CE нет линукса.
Не понятно, как автор компилирует тогда.
...
Рейтинг: 0 / 0
07.06.2020, 14:11
    #39966856
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Вот Linux как раз есть. SDK ставишь и все.

По теме есть что сказать?

Upd.
Возможно, у меня не СE. Пробная версия на 30 дней, это не CE? Ну и х.с.н.
Та же байда была на 10.3. Поставил 10.4 в надежде что что-то изменилось. Фиг.
...
Рейтинг: 0 / 0
07.06.2020, 15:23
    #39966871
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Maxim Rusov
Возможно, у меня не СE. Пробная версия на 30 дней, это не CE? Ну и х.с.н.

Пробная версия это триал. В триале действительно нет исходников, но в триале 10.4 они есть, как есть и линукс. В CE линукса нет.
...
Рейтинг: 0 / 0
07.06.2020, 17:48
    #39966893
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Maxim Rusov,

а для чего вообще использовать runtime packages, особенно в linux? чем аргументируется?
...
Рейтинг: 0 / 0
07.06.2020, 18:02
    #39966898
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
asutp2
а для чего вообще использовать runtime packages, особенно в linux? чем аргументируется?


1. Возможность обрабатывать исключения из библиотек.
2. Возможность использовать общие переменные процесса.
3. Общий менеджер памяти.
4. Существенное сокращение размеров.

Из всего - 1 самый стоппер, естественно. 2-4 - можно обойти так или иначе.
...
Рейтинг: 0 / 0
08.06.2020, 12:31
    #39967023
jack_vosmerkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
этот глюк исправлять не будут
о причинах можешь неспрашивать

в лазарусе проверял?
...
Рейтинг: 0 / 0
08.06.2020, 13:03
    #39967043
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
А в Лазарусе уже есть пакеты?
...
Рейтинг: 0 / 0
08.06.2020, 13:05
    #39967044
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
jack_vosmerkin
о причинах можешь неспрашивать

А очень хочется :)

jack_vosmerkin
в лазарусе проверял?

Там пакетов пока нет:
Dynamic Packages

Year: 2020
Status: In progress
Tags: Dynamic libraries packages

Implement support for libraries and dynamic package loading (The equivalent of Delphi BPL) in the Free Pascal RTL.
This is currently being worked on by Sven Barth, a member of the Free Pascal core team.
...
Рейтинг: 0 / 0
08.06.2020, 13:07
    #39967045
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Maxim Rusov,

1. Если интересует только сам факт исключения, то можно исользовать safecall.
2. Переменные можно экспортировать, но импорт придётся делать руками.
3. У дельфей на позиксе он и так общесистемный.
4. ...
...
Рейтинг: 0 / 0
08.06.2020, 13:46
    #39967068
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
N-е количество лет назад, когда в Delphi еще не было 64-х разрядного компилятора а в Лазарусе уже был мы были вынуждены портировать бэкенд на Лазарус. Было тяжело, я долго подкручивал его RTL чтобы сделать единый стек исключений. Потом EB разродилась и я все это с облегчением выкинул. Заново затеваться не хочется.

Странно как то. Я обрадовался что в Линукс есть почти настоящие packages. Т.е. работа (довольно большая) проделана. Только пользоваться ими - нельзя.
...
Рейтинг: 0 / 0
08.06.2020, 14:47
    #39967098
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Maxim Rusov,

вот здесь (ахтунг, по-немецки) пишут такие вещи:

1) 231 ist "Zu viele verschachtelte Exceptions, Maximal 16 sind zulässig".
перевод: 231 - это "Слишком много вложенных исключений, максимум 16 допустимо"

2) другой советует поступить таким образом

- взять шестнадцатиричный код из исключения, в вашем случае это 00007F974BE78B8A
- и поискать в MAP-файле на "7F974BE78B8A"

и якобы при известном везении можно получить имя класса / метода, где возникло исключение.

но и он же пишет про большое число вложенных исключений
...
Рейтинг: 0 / 0
08.06.2020, 15:35
    #39967109
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Я, наверное, зря написал про Runtime error 231, это уже последствия. Просто в консоли остаются только они (их тысячи), а изначальная ошибка улетает

Полностью все выглядит так

$ ./Main >log 2>&1

Begin...
LibProc1
End...
Exception EAccessViolation in module bplrtl270.so at 00007F042017AFE8.
Access violation at address 00007F042017AFE8, accessing address 00007F04214E9898.
Runtime error 231 at 00007F0420179B8A
Runtime error 231 at 00007F0420179B8A
Runtime error 231 at 00007F0420179B8A
... 20 тыс раз


Изначально ошибка Segmentation fault где-то в System, при финализации модулей.
...
Рейтинг: 0 / 0
08.06.2020, 20:53
    #39967184
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Я вначале было подумал, когда увидел EAccessViolation, что вы string в либу передаете или возвращаете, но взглянул на код либы и понял, что нет.
После просмотра такая мысль появилась: а вот этот Writeln из либы он куда пишет? Может там в линуксе надо счто то типа дескриптора потока передавать? Попробуйте интереса ради заменить Writeln на Sleep
...
Рейтинг: 0 / 0
08.06.2020, 23:00
    #39967197
Сергей Фролов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Максим, перестаньте насиловать Delphi.
Все новые платформы и компиляторы там чисто для маркетинговых целей.
...
Рейтинг: 0 / 0
08.06.2020, 23:11
    #39967200
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Сергей Фролов
Максим, перестаньте насиловать Delphi.
Все новые платформы и компиляторы там чисто для маркетинговых целей.

У нас сервисы из под CentOS написанные на delphi в ПЭ нормально крутятся видимо с помощью магии.
...
Рейтинг: 0 / 0
08.06.2020, 23:26
    #39967204
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
По существу, в какой последней версии это работало ?
...
Рейтинг: 0 / 0
08.06.2020, 23:46
    #39967207
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Сергей Фролов
Максим, перестаньте насиловать Delphi.
Все новые платформы и компиляторы там чисто для маркетинговых целей.

Не, я пока не готов признать поражение :)
...
Рейтинг: 0 / 0
08.06.2020, 23:50
    #39967208
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
Dmitry Arefiev
По существу, в какой последней версии это работало ?

Если вопрос ко мне по Subj - то это работает в Windows. В Linux - падает. Проверено на 10.3 и 10.4 может никогда и не работало (когда там Linux появился?...)
...
Рейтинг: 0 / 0
08.06.2020, 23:53
    #39967210
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
У меня на Ubuntu 18.04 LTS работает демон (без рантайм пакетов), обрабатывает входящие json-запросы и отвечает json-ответами. В качестве БД используется MySQL (через UniDAC). Написано на rio 10.3.3, uptime 6 месяцев после последнего обновления.
Всё работает, exception-ы нормально обрабатываются и ничего не крешится.

Runtime-packages это самое голимое зло, т.к. использующий код привязан к конкретной сборке этих самых пакетов. Вышел новый фикс к системным либам делфи и вуаля, требуется перекомпиляция/полный апгрейд основного приложения + пакетов к нему. А если в системе есть какое нибудь другое приложение, которое тоже использует эти же самые runtime packages, то всё, приехали. Либо его тоже придется обновлять, либо отказаться от обновления и жить на старых пакетах.
...
Рейтинг: 0 / 0
09.06.2020, 00:36
    #39967212
Maxim Rusov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi. Linux. Баги.
asutp2,

Я, разумеется, не использую стандартные packages. Собираю свой, включая в него только то что мне нужно (rtl + Classes). Для меня это такая же библиотека как и все остальные, но с "фичами".

Ну и размер - имеет значение. Сейчас у меня суммарный размер всех бинарников ~70M. Без package было бы под 200.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi. Linux. Баги. / 25 сообщений из 76, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]