Re: Зависает Firebird CS при отключении после вызова UDF в Linux

2011-10-18 Пенетрантность A.Truhin
 в попробовать 32-bit Classic ?
 
 вряд ли, но вдруг проявится - тогда проще исктаь будет :-)
 
На винде, я использовал FPC + UDF 32/64 бита, нет ни каких проблем



Re: Зависает Firebird CS при отключении после вызова UDF в Linux

2011-10-17 Пенетрантность Arioch

В письме от 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

2011-10-17 Пенетрантность Arioch

В письме от 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

2011-10-17 Пенетрантность Vsevolod

О! ещё одна мысль.

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

2011-10-17 Пенетрантность Vsevolod

И все же интересно какие библиотеки подгружаются для сервера и для 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

2011-10-17 Пенетрантность Владимир

1) у Всеволода вроде 32-битная система - ОС, FB, FPC, UDF
У Владимира тоже все 32-битное ?



Все 32-битное


2) У обоих Firebird CS - Никто не пробовал SS ?
Он по идее не заканчивает процес только при выключении, а не при 
отсоединении, т.е. должен зависать один раз в конце работы 
демона/операционки, а ни при каждом отключении.
Или м.б. вообще не зависать, сли там отлично окажется организована работа 
с UDF'ками или памятью




На SS простые примеры UDF, собранные в Lazarus, работают.






Re: Зависает Firebird CS при отключении после вызова UDF в Linux

2011-10-17 Пенетрантность Arioch
В письме от 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

2011-10-17 Пенетрантность Arioch
В письме от 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

2011-10-17 Пенетрантность Vsevolod
ну я сам не гуру далеко, да и проверить особо не на чем.

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

2011-10-17 Пенетрантность Vladimir
У меня тоже ничего подозрительного

[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

2011-10-17 Пенетрантность Arioch

В письме от 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

2011-10-17 Пенетрантность Arioch
В письме от 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/