Re: Зависает Firebird CS при отключении после вызова UDF в Linux
в попробовать 32-bit Classic ? вряд ли, но вдруг проявится - тогда проще исктаь будет :-) На винде, я использовал FPC + UDF 32/64 бита, нет ни каких проблем
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
В письме от Mon, 17 Oct 2011 10:15:20 +0400, Cherevatenko Vsevolod iuaa...@gmail.com сообщал: Пара мыслей в воздух 1) у Всеволода вроде 32-битная система - ОС, FB, FPC, UDF У Владимира тоже все 32-битное ? Едва ли это важно, но заранее хз. 2) У обоих Firebird CS - Никто не пробовал SS ? Он по идее не заканчивает процес только при выключении, а не при отсоединении, т.е. должен зависать один раз в конце работы демона/операционки, а ни при каждом отключении. Или м.б. вообще не зависать, сли там отлично окажется организована работа с UDF'ками или памятью 3) если дошло дело до простейших примеров - м.б. сделаете простейшую UDF-ка на GCC, посмотрите зависает ил она ? Будет ли отличие из-за Pascal RTL, или из-за чего-то общего в FPC/GCC ? И все же интересно какие библиотеки подгружаются для сервера и для UDF-ки, если это покажет ldd Смущает меня вот это кайликсовое uses libc в фреепаскале - не может он подцеплять какой-то полускомпилированный устаревший юнит от кайликса ? -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
В письме от Mon, 17 Oct 2011 10:15:20 +0400, Cherevatenko Vsevolod iuaa...@gmail.com сообщал: О! ещё одна мысль. 4) Поставить на винде таких же версий FB-CS и FPC и на винде попробовать UDF-ку -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
О! ещё одна мысль. 4) Поставить на винде таких же версий FB-CS и FPC и на винде попробовать UDF-ку У меня есть такие варианты FB 2.5.1-64 bit на Win2008-64 и FB 2.1.4-64 bit на Win2008-64 скомпилированные на FPC. Все работает. Пока без проблем :) Наверное я что-то неправильно делаю. С уважением, Всеволод -- View this message in context: http://firebird.1100200.n4.nabble.com/isql-UDF-Linux-tp3908947p3911743.html Sent from the firebird-russian mailing list archive at Nabble.com.
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
И все же интересно какие библиотеки подгружаются для сервера и для UDF-ки, если это покажет ldd Подскажите плиз как это сделать. Смущает меня вот это кайликсовое uses libc в фреепаскале - не может он подцеплять какой-то полускомпилированный устаревший юнит от кайликса ? Отключал я это. Не помогло. Единственно, что был warning usr/bin/ld: warning: /opt/firebird/UDF/link.res contains output section; did you forget -T? Может быть какие-то заклинания fpc нужны ? С уважением, Всеволод. -- View this message in context: http://firebird.1100200.n4.nabble.com/isql-UDF-Linux-tp3908947p3911826.html Sent from the firebird-russian mailing list archive at Nabble.com.
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
1) у Всеволода вроде 32-битная система - ОС, FB, FPC, UDF У Владимира тоже все 32-битное ? Все 32-битное 2) У обоих Firebird CS - Никто не пробовал SS ? Он по идее не заканчивает процес только при выключении, а не при отсоединении, т.е. должен зависать один раз в конце работы демона/операционки, а ни при каждом отключении. Или м.б. вообще не зависать, сли там отлично окажется организована работа с UDF'ками или памятью На SS простые примеры UDF, собранные в Lazarus, работают.
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
В письме от Mon, 17 Oct 2011 16:19:49 +0400, Vsevolod iuaa...@gmail.com сообщал: И все же интересно какие библиотеки подгружаются для сервера и для UDF-ки, если это покажет ldd Подскажите плиз как это сделать. ну я сам не гуру далеко, да и проверить особо не на чем. 1. открыть терминал 2. может быть - ввести команду su - чтобы дальше от администратора вводить. М.б. не нужно, но не помешает, думаю. 3. ввести ldd путь-к-файлу-сервера 3.1 вывод программы скопировать себе в текстовик какой-нибудь 3.2 или можно ldd путь временный файл - но с перенаправлением придется самому себе права на файл потом давать 4 - то же самое про файл UDF 5. потом сравнить и искать подозрительные частичные совпадения usr/bin/ld: warning: /opt/firebird/UDF/link.res contains output а он этот рес-файл за каким лешим вообще на линуксе нужен ??? введи в терминале man ld (выход кнопкой q) и почитай, что Линукс пишет про опцию -T -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
В письме от Mon, 17 Oct 2011 15:41:33 +0400, Vsevolod iuaa...@gmail.com сообщал: У меня есть такие варианты FB 2.5.1-64 bit на Win2008-64 и FB 2.1.4-64 bit на Win2008-64 скомпилированные на FPC. Все работает. Пока без проблем :) в попробовать 32-bit Classic ? вряд ли, но вдруг проявится - тогда проще исктаь будет :-) -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
ну я сам не гуру далеко, да и проверить особо не на чем. 1. открыть терминал 2. может быть - ввести команду su - чтобы дальше от администратора вводить. М.б. не нужно, но не помешает, думаю. 3. ввести ldd путь-к-файлу-сервера 3.1 вывод программы скопировать себе в текстовик какой-нибудь 3.2 или можно ldd путь временный файл - но с перенаправлением придется самому себе права на файл потом давать 4 - то же самое про файл UDF 5. потом сравнить и искать подозрительные частичные совпадения Все сделал, как доктор приказал. Только сравнивать нечего : Для сервера : linux-gate.so.1 = (0xb77a1000) libfbembed.so.2.5 = /opt/firebird/lib/libfbembed.so.2.5 (0xb728d000) libdl.so.2 = /lib/tls/i686/cmov/libdl.so.2 (0xb7284000) libncurses.so.5 = /lib/libncurses.so.5 (0xb724b000) libstdc++.so.6 = /usr/lib/libstdc++.so.6 (0xb7155000) libm.so.6 = /lib/tls/i686/cmov/libm.so.6 (0xb712f000) libgcc_s.so.1 = /lib/libgcc_s.so.1 (0xb711) libpthread.so.0 = /lib/tls/i686/cmov/libpthread.so.0 (0xb70f7000) libc.so.6 = /lib/tls/i686/cmov/libc.so.6 (0xb6f9c000) libicuuc.so.30 = /opt/firebird/lib/libicuuc.so.30 (0xb6edd000) libicudata.so.30 = /opt/firebird/lib/libicudata.so.30 (0xb6d6) libicui18n.so.30 = /opt/firebird/lib/libicui18n.so.30 (0xb6ce1000) /lib/ld-linux.so.2 (0xb77a2000) Для удф : statically linked Текст мощной удф : library test ; uses linux; Function test : Integer ; cdecl ; export ; Begin Result := 400 ; End ; Exports test name 'test' ; begin end. С уважением, Всеволод. -- View this message in context: http://firebird.1100200.n4.nabble.com/isql-UDF-Linux-tp3908947p3912045.html Sent from the firebird-russian mailing list archive at Nabble.com.
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
У меня тоже ничего подозрительного [root@localhost bin-classic]# ldd /usr/sbin/fb_inet_server linux-gate.so.1 = (0x00e0b000) libfbembed.so.2.5 = /usr/lib/libfbembed.so.2.5 (0x42747000) libdl.so.2 = /lib/libdl.so.2 (0x48cfa000) libncurses.so.5 = /lib/libncurses.so.5 (0x4a11e000) libtinfo.so.5 = /lib/libtinfo.so.5 (0x49f2f000) libstdc++.so.6 = /usr/lib/libstdc++.so.6 (0x49e3f000) libm.so.6 = /lib/libm.so.6 (0x48d0c000) libgcc_s.so.1 = /lib/libgcc_s.so.1 (0x48d38000) libpthread.so.0 = /lib/libpthread.so.0 (0x48cde000) libc.so.6 = /lib/libc.so.6 (0x48b5) libicuuc.so.44 = /usr/lib/libicuuc.so.44 (0x4a989000) libicudata.so.44 = /usr/lib/libicudata.so.44 (0x4ab3) libicui18n.so.44 = /usr/lib/libicui18n.so.44 (0x4bb99000) /lib/ld-linux.so.2 (0x48b2f000) [root@localhost bin-classic]# ldd /usr/lib/firebird/UDF/index.so linux-gate.so.1 = (0x007d1000) libpthread.so.0 = /lib/libpthread.so.0 (0x00877000) libdl.so.2 = /lib/libdl.so.2 (0x00a9b000) libc.so.6 = /lib/libc.so.6 (0x00153000) /lib/ld-linux.so.2 (0x48b2f000) С уважением, Владимир.
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
В письме от Mon, 17 Oct 2011 17:32:58 +0400, Vsevolod iuaa...@gmail.com сообщал: Для сервера : linux-gate.so.1 = (0xb77a1000) libfbembed.so.2.5 = /opt/firebird/lib/libfbembed.so.2.5 (0xb728d000) libdl.so.2 = /lib/tls/i686/cmov/libdl.so.2 (0xb7284000) libncurses.so.5 = /lib/libncurses.so.5 (0xb724b000) libstdc++.so.6 = /usr/lib/libstdc++.so.6 (0xb7155000) libm.so.6 = /lib/tls/i686/cmov/libm.so.6 (0xb712f000) libgcc_s.so.1 = /lib/libgcc_s.so.1 (0xb711) libpthread.so.0 = /lib/tls/i686/cmov/libpthread.so.0 (0xb70f7000) libc.so.6 = /lib/tls/i686/cmov/libc.so.6 (0xb6f9c000) libicuuc.so.30 = /opt/firebird/lib/libicuuc.so.30 (0xb6edd000) libicudata.so.30 = /opt/firebird/lib/libicudata.so.30 (0xb6d6) libicui18n.so.30 = /opt/firebird/lib/libicui18n.so.30 (0xb6ce1000) /lib/ld-linux.so.2 (0xb77a2000) странно, что не вижу ссылки на ib_util.dll или она подгружается динамичечски только при загрузке UDF ??? http://www.ibase.ru/ibfaq.htm#msvcr7 Для удф : statically linked и вот это менч напрягает. представь, что ты делаешь программу с плагинами, и сама программа у тебя собрана с BPL (USe Runtime Packages), а плагин - статичен. В результате у тебя внутри программы будет два разных типа TObject и соответственно всех последующих классов тоже по два. Сразу отваливаются операторы as и is и вообще хрен знает что происходит. В принципе, конечно, взаимодействие FB - UDF должно быть примитивным и не влиять... но хрен его знает, как поведут себя две инициализации двух копий libc мне интуитивно не нравится впрочем, у Владимира все собрано динамически, библиотеки кажется совпадают, а результат тот же... Текст мощной удф : library test ; uses linux; Function test : Integer ; cdecl ; export ; Begin Result := 400 ; End ; Exports test name 'test' ; begin end. вот если бы FPC могу выдать плоский текст, со всеми модулями подклеенными... Где-то выгрузка программы не срабатывает... может какого мьютекса ждёт или ещё чего... Такая примитивная UDF-ка не выдаёт такое же usr/bin/ld: warning: /opt/firebird/UDF/link.res contains output section; did you forget -T? ? А если эту примитивную UDF-ку в GNU Pascal ? И сделать аналог на GCC для очистки совести ? PS. GCC... при всей моей не любви к C/C++... RIP mr. Ritchie -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Зависает Firebird CS при отключении после вызова UDF в Linux
В письме от Mon, 17 Oct 2011 16:38:06 +0400, Владимир vbut...@gmail.com сообщал: 2) У обоих Firebird CS - Никто не пробовал SS ? Он по идее не заканчивает процес только при выключении, а не при отсоединении, т.е. должен зависать один раз в конце работы демона/операционки, а ни при каждом отключении. Или м.б. вообще не зависать, сли там отлично окажется организована работа с UDF'ками или памятью На SS простые примеры UDF, собранные в Lazarus, работают. на соединении и отсоединении будут работать, без сомнения. А на выключении ? Сделай как обычно, а потом попробуй погасить сервер, не зависнет, нормально выключится ? Если можно, желательно запускать сервер как программу, а не как службу. Точно не знаю как он в Линуксе запускается, но чкорее всего через /etc/rc.d (т.е. отключённым от нормальных stdin/stdout), а то и через xinet? который сам включает и выключает и может просто проглотить акую-то ошибку. В терминале запустить сервер как программу, и посмотреть потом выключиться ли он... Ммм... интересно, а есть ли штатный способ выключения FB на Линуксе ? там же иконки в трей он не выводит, как на винде, наверное... -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/