Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти / 25 сообщений из 27, страница 1 из 2
13.11.2017, 15:03
    #39552275
grgr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
Есть два сервера. На CentOS 6.8 и на Debian Jessie (8.8). На каждом есть apache, php, клиентские библиотеки Firebird и установлен пакет для ODBC (unixODBC и там, и там).

Детальные конфигурации:
CentOS 6.8, 64bit, PHP 5.3.3 (cli) (built: Aug 11 2016 20:33:53), apache2, php-odbc-5.3.3-48.el6_8.x86_64

Debian Jessie 8.8, 64bit, PHP 5.6.30-0+deb8u1 (cli) (built: Feb 8 2017 08:50:21), apache2, php5-odbc, unixodbc (oldstable,now 2.3.1-3 amd64 [installed])

Есть тестовый файл:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
#!/usr/bin/php
<?php
$connect = odbc_connect("ProgrDB","USERUSER","pwrdpwrd");

if(odbc_error($connect)) {
	$err = odbc_errormsg($connect);
	print $err;
}

	if ($connect <= 0) {
		echo 'c ' . odbc_error($connect), ' ', odbc_errormsg($connect);
	}
	else {
		$query = "select coalesce(title, '') from SITE_POSITIONS_LIST(0) ";
		$res = odbc_exec($connect, $query);
		if( $res <= 0 ) {
			echo 'e ' . odbc_error($res), ' ', odbc_errormsg($res);
		}
		else
		{
			echo 'All OK!';
		}
	}
?>



Целевой сервер с БД (еще одна машина) на Windows, там Firebird 3.0.2. Нареканий в работе всего, что с ним связано - нет.

Итак:
При выполнении на CentOS получаем 'All OK!'.

При выполнении на Debian

PHP Fatal error: Out of memory (allocated 262144) (tried to allocate 140307991625985 bytes) in /var/www/html/site/odbctest.php on line 15

Само соединение устанавливается и там, и там. Также работает вызов указанной функции напрямую из isql на Debain.

Что я делал, чтобы решить проблему:
Я узнал, что это ошибка может значить: 99,8% случаев в интернете касаются банального ограничения php по памяти. Но вряд ли 95 петабайт, это то, что нужно php, чтобы выполнить odbc_exec, который показывает 5 строк (из таблицы в 5 строк) типа таких:

Строка1
Строка2
Строка3
Строка4
Строка5

"Про 95 петабайт"
tried to allocate выдает немного разные значения, это один из результатов, в сообщении выше результат другой


Остальные 0.1% - это ошибки odbc драйверов, например проблемы с NULL из-за того, что кто-то перешел с архитектуры 32bit на 64bit, а драйвер сделал плохо. Вопрос расположения бита, который отвечает за NULL. Поэтому я добавил в код coalesce, хоть моя процедура и так не возвращает null значений.

А остальные - мой случай. У других пользователей (насчитал ровно 3 счастливчика на стековерфлоу, чьи вопросы, конечно, остались без ответа) требуются другие значения, скажем 13 экзабайт памяти...

Еще о настройках:
ProgrDB настроена в odbc.ini:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
[ProgrDB]
Description = Firebird connection to DB for site
Driver = Firebird64
Dbname = 192.168.0.20:E:\BASE\PRG.fdb
User = USERUSER
Password = pwrdpwrd
Role =
CharacterSet =
ReadOnly = No
NoWait = No

odbcinst.ini:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
[Firebird64]
Description = InterBase/Firebird ODBC Driver
Driver = /usr/lib/libOdbcFb.so
Setup = /usr/lib/libOdbcFbS.so
Threading = 1
FileUsage = 1
CPTimeout =
CPReuse =
Отличается только тем, что на CentOS пути немного другие: /usr/lib/odbc/

Я пытался понять, в чем моя ошибка, искал различия:
libOdbcFb.so одинаковые, libfbclient.so.3.0.2 взята на Debian с CentOS, там лежала в папке /usr/lib64, здесь отдельной папки в usr нет, по инструкциям еще размещают в /usr/lib.

Проверял работу strace-ом. Но это для меня сложновато: единственный кусок, который я отметил - вот:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
mmap(NULL, 139629387190272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
mmap(NULL, 134217728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7efe8c000000
munmap(0x7efe90000000, 67108864)        = 0
mprotect(0x7efe8c000000, 135168, PROT_READ|PROT_WRITE) = 0
mmap(NULL, 139629387059200, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
write(2, "PHP Fatal error:  Out of memory "..., 146PHP Fatal error:  Out of memory (allocated 262144) (tried to allocate 139629386793217 bytes) in /var/www/html/site/odbctest.php on line 15
) = 146
close(2)                                = 0

Не знаю, что и делать. Прошу, подскажите!

UPD 10.11.2017: Поставили PHP 7.0, ситуация не изменилась. Думаю на 1) odbc, 2) драйвер Firebird odbc, 3) звено связку php-odbc.

UPD 2:
"unixodbc trace log"Ошибки не вижу в логе, хотя выполнение скрипта завершилось ошибкой как обычно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
[ODBC][7660][1510327527.078817][__handles.c][460]
                Exit:[SQL_SUCCESS]
                        Environment = 0x560bc180d060
[ODBC][7660][1510327527.078879][SQLAllocHandle.c][375]
                Entry:
                        Handle Type = 2
                        Input Handle = 0x560bc180d060
[ODBC][7660][1510327527.078901][SQLAllocHandle.c][493]
                Exit:[SQL_SUCCESS]
                        Output Handle = 0x560bc1848c10
[ODBC][7660][1510327527.078921][SQLConnect.c][3703]
                Entry:
                        Connection = 0x560bc1848c10
                        Server Name = [ProgrDB][length = 7 (SQL_NTS)]
                        User Name = [USERUSER][length = 8 (SQL_NTS)]
                        Authentication = [********][length = 8 (SQL_NTS)]
                UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'

[ODBC][7660][1510327527.166194][SQLConnect.c][4276]
                Exit:[SQL_SUCCESS_WITH_INFO]
[ODBC][7660][1510327527.166282][SQLAllocHandle.c][540]
                Entry:
                        Handle Type = 3
                        Input Handle = 0x560bc1848c10
[ODBC][7660][1510327527.166347][SQLAllocHandle.c][1081]
                Exit:[SQL_SUCCESS]
                        Output Handle = 0x560bc1878f20
[ODBC][7660][1510327527.166377][SQLGetInfo.c][554]
                Entry:
                        Connection = 0x560bc1848c10
                        Info Type = SQL_FETCH_DIRECTION (8)
                        Info Value = 0x7fff16a35a54
                        Buffer Length = 4
                        StrLen = (nil)
[ODBC][7660][1510327527.166402][SQLGetInfo.c][617]
                Exit:[SQL_SUCCESS]
[ODBC][7660][1510327527.166420][SQLSetStmtOption.c][197]
                Entry:
                        Statement = 0x560bc1878f20
                        Option = SQL_ATTR_CURSOR_TYPE
                        Value = 3
[ODBC][7660][1510327527.166441][SQLSetStmtOption.c][474]
                Exit:[SQL_SUCCESS]
[ODBC][7660][1510327527.166460][SQLExecDirect.c][240]
                Entry:
                        Statement = 0x560bc1878f20
                        SQL = [select coalesce(title, '') from SITE_POSITIONS_LIST(0) ][length = 55 (SQL_NTS)]
[ODBC][7660][1510327527.171816][SQLExecDirect.c][503]
                Exit:[SQL_SUCCESS]
[ODBC][7660][1510327527.171845][SQLNumResultCols.c][156]
                Entry:
                        Statement = 0x560bc1878f20
                        Column Count = 0x7f915bc551d0
[ODBC][7660][1510327527.171877][SQLNumResultCols.c][248]
                Exit:[SQL_SUCCESS]
                        Count = 0x7f915bc551d0 -> 1
[ODBC][7660][1510327527.171905][SQLColAttribute.c][293]
                Entry:
                        Statement = 0x560bc1878f20
                        Column Number = 1
                        Field Identifier = SQL_DESC_NAME
                        Character Attr = 0x7f915bc5b280
                        Buffer Length = 256
                        String Length = 0x7fff16a35962
                        Numeric Attribute = (nil)
[ODBC][7660][1510327527.171933][SQLColAttribute.c][664]
                Exit:[SQL_SUCCESS]
[ODBC][7660][1510327527.171952][SQLColAttribute.c][293]
                Entry:
                        Statement = 0x560bc1878f20
                        Column Number = 1
                        Field Identifier = SQL_DESC_CONCISE_TYPE
                        Character Attr = (nil)
                        Buffer Length = 0
                        String Length = (nil)
                        Numeric Attribute = 0x7f915bc5b390
[ODBC][7660][1510327527.171970][SQLColAttribute.c][664]
                Exit:[SQL_SUCCESS]
[ODBC][7660][1510327527.171987][SQLColAttribute.c][293]
                Entry:
                        Statement = 0x560bc1878f20
                        Column Number = 1
                        Field Identifier = SQL_DESC_OCTET_LENGTH
                        Character Attr = (nil)
                        Buffer Length = 0
                        String Length = (nil)
                        Numeric Attribute = 0x7fff16a35968
[ODBC][7660][1510327527.172004][SQLColAttribute.c][664]
                Exit:[SQL_SUCCESS]
[ODBC][7660][1510327527.172565][SQLDisconnect.c][208]
                Entry:
                        Connection = 0x560bc1848c10
[ODBC][7660][1510327527.182080][SQLDisconnect.c][364]
                Exit:[SQL_SUCCESS]
[ODBC][7660][1510327527.182117][SQLFreeHandle.c][284]
                Entry:
                        Handle Type = 2
                        Input Handle = 0x560bc1848c10
[ODBC][7660][1510327527.182136][SQLFreeHandle.c][333]
                Exit:[SQL_SUCCESS]
[ODBC][7660][1510327527.182152][SQLFreeHandle.c][219]
                Entry:
                        Handle Type = 1
                        Input Handle = 0x560bc180d060
Есть подозрение на версию библиотеки: стоит последняя, стоит попробовать 2.2.12, пока не понятно как


UPD 3 : ситуация с попыткой обойти проблему еще более печальная. Поставил pdo_firebird через apt-get install php-pdo-firebird, всё отлично поставилось, но ошибка:
Код: plaintext
 SQLSTATE[HY000] [335545106] unknown ISC error 335545106 
, что, как я понимаю, значит, что pdo драйвер поддерживает максимум 2.5 FB, т.к. на сервере у нас 3.0, а такую ошибку последний раз я наблюдал именно в этом случае. Есть какой-то официальный невразумительный гайд по pdo в php, где файл получается командой из установленного сервера, что даже по определению - глупость, у меня нет никакого fb-сервера на linux.
...
Рейтинг: 0 / 0
13.11.2017, 15:09
    #39552277
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgr,

мне кажется, вопрос не по адресу, как минимум потому, что я не вижу тут слова Firebird ODBC.
https://sourceforge.net/projects/firebird/files/firebird-ODBC-driver/2.0.5-Release/

ошибка либо в php-odbc, либо в php, а этот раздел форума не про них.
...
Рейтинг: 0 / 0
13.11.2017, 15:23
    #39552290
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgrошибка:
Код: plaintext
 SQLSTATE[HY000] [335545106] unknown ISC error 335545106 
, что, как я понимаю, значит, что pdo драйвер поддерживает максимум 2.5 FB, т.к. на сервере у нас 3.0, а такую ошибку последний раз я наблюдал именно в этом случа335545106 - это isc_login_error
Нужно или подложить в PHP свежую версию fbclient (от 3.0), или настроить FB3 на сервере - разрешить аутентификацию старым клиентом
...
Рейтинг: 0 / 0
13.11.2017, 16:02
    #39552331
grgr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
hvladgrgrошибка:
Код: plaintext
 SQLSTATE[HY000] [335545106] unknown ISC error 335545106 
, что, как я понимаю, значит, что pdo драйвер поддерживает максимум 2.5 FB, т.к. на сервере у нас 3.0, а такую ошибку последний раз я наблюдал именно в этом случа335545106 - это isc_login_error
Нужно или подложить в PHP свежую версию fbclient (от 3.0), или настроить FB3 на сервере - разрешить аутентификацию старым клиентом

libfbclient взял с работающего сервера CentOS, fb3 тоже настроен, соединение именно с fb3 специально тестировали, когда еще были старые сервера (и клиенты) с fb2.5.

Поэтому и мысль была что готовый пакет php pdo firebird не рассчитан на 3.0.

kdvgrgr,

мне кажется, вопрос не по адресу, как минимум потому, что я не вижу тут слова Firebird ODBC.
https://sourceforge.net/projects/firebird/files/firebird-ODBC-driver/2.0.5-Release/

ошибка либо в php-odbc, либо в php, а этот раздел форума не про них.

Добавлю, хотя во втором предложении все написано. Вопрос именно про просто firebird, просто odbc. Даже такое просто требует как минимум libOdbcFb.so, которая явно имеет отношение к firebird как таковому.

То есть всем, кроме собственно сервера занимаются какие-то другие люди, и здесь я их, думаете, не найду? Это неутешительно. Потому как сервер есть, а инфраструктуры, получается, нет.

Я еще буду пробовать в питоном, потому как к нему есть отдельный драйвер на оффсайте.
...
Рейтинг: 0 / 0
13.11.2017, 20:35
    #39552504
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgrlibfbclient взял с работающего сервера CentOS
grgrDebian Jessie 8.8

а вы можете на 100% гарантировать, что эти две разные операционные системы полностью совместимы по ABI (двоичному программному интерфейсу) ?

в общем, вы тут рискуете...

"можно пропердолить, но можно и получить" (с)
...
Рейтинг: 0 / 0
13.11.2017, 21:47
    #39552528
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgrДобавлю, хотя во втором предложении все написано. Вопрос именно про просто firebird, просто odbc.
у вас там написано unixodbc. Есть тут что-то про ФБ? Нет. "Просто odbc" - это интерфейс. А Firebird ODBC - это драйвер между этим самым ОДБЦ-интерфейсом и ФБ.
Версию последнюю я вам указал - 2.0.5. У вас в этой второй строке (и вообще нигде) таких цифр нет.
grgrТо есть всем, кроме собственно сервера занимаются какие-то другие люди, и здесь я их, думаете, не найду?
можно подумать, что прям все кто с ФБ работают, работают через php и odbc, причем на линуксах. Совершенно нет.

Ну а если даже, вдруг, проблема в Firebird ODBC - например, в совместимости с Debian - вам кроме автора драйвера вряд-ли кто ответит. И автор драйвера тут не появляется.
...
Рейтинг: 0 / 0
13.11.2017, 21:58
    #39552534
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgr,

кстати, а почему именно вот такая прослойка - php - php-odbc - unixodbc... FB? Почему не PDO, или еще что-то? Это уже какая-то готовая система, а вы ее портировать пытаетесь?
...
Рейтинг: 0 / 0
14.11.2017, 16:50
    #39552971
grgr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
kdv,
по поводу Firebird. В моём вопросе всё пронизано словом Firebird. Конфиги, суть, всё.
Я понимаю, что драйвер это прослойка, но именно она не работает как надо.

Сейчас настроил полностью с нуля CentOS7, работает всё, а ошибка такая же

Код: plaintext
1.
PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 140496970187009 bytes) in /var/www/html/mysite/odbctest.php on line 16

Мне по условию задачи надо php (на нем сайт, нужно сделать буквально пустяковую интеграцию). Далее, работает ли "родной" драйвер из пакета (php-firebird|php-insetbase) с 3.0. По-моему нет. Я уже забыл начало этой дурацкой задачи.

Есть факт - работающий всего на одной машине php через php-odbc с Firebird (через libOdbcFb.so и libfbclient.so, которая по-моему вообще непосредственно имеет отношение к FB). Работающий на ура. Я сравнивал изменившиеся файлы на машинах (с их старта, текстовые файлы 100Мб и 10Мб), делал машину с нуля, и это не дает мне понять, почему не работает.

Примерная причина - неправильно скомпилированный драйвер для odbc для 64-х разрядных линуксов, возможно в купе с ошибками в unixODBC 2.2.12-2.2.14. Но не факт, что дело только в этом.

Какие у меня альтернативы? PDO на остальных машинах выдает ту же проблему с авторизацией, на рабочей - нет, всё работает. Отличия в настройках я не нашел. Куда копать? У меня fbclient 3.0.2.

Есть какой-то нормальный способ работать с ФБ из PHP в этих условиях?

p.s.: по-моему это самая логичная ветка форума, где я могу спросить.
...
Рейтинг: 0 / 0
14.11.2017, 17:05
    #39552980
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
У unixodbc есть клиент (вроде isql) чтобы проверить работоспособность именно unixodbc+libOdbcFb ?

grgrPDO на остальных машинах выдает ту же проблему с авторизацией, на рабочей - нет, всё работает. Отличия в настройках я не нашел. Куда копать? У меня fbclient 3.0.2.А у PDO какой клиент ? IIRC, PHP любит работать только со своими приватными копиями клиентов

Где конфиг Firebird (только изменённые пар-ры), который "специально тестировали, когда еще были старые сервера (и клиенты) с fb2.5" ?

Вы не даёте ровно никакой значимой инф-ции, хотя слов пишете много...
...
Рейтинг: 0 / 0
14.11.2017, 18:04
    #39553006
grgr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
Хотел подключить native. К php 7.0, на CentOS 7. Нашел самый невнятный док во вселенной:
https://www.firebirdsql.org/file/documentation/papers_presentations/Firebird_PHP_Linux.pdf
Иметь на клиенте сервер FB, чтобы собрать библиотеку для клиента, действительно? Мне даже становиться смешно (и грустно).

Ну это ведь не нормально. Готовые пакеты (которые есть, скажем выполняем "yum install php-firebird") работают максимум с 2.5. На форуме вижу вопросы по FB 4, инфраструктуры по FB 3 не вижу, вижу по 2.5. И как пользоваться?

---

По настройкам посмотрел сейчас. Единственное что бросилось в глаза, это

WireCrypt = Enabled

на сервере, при том что легаси аутентификация не включена, остальное по умолчанию, при установке совместимость не выбиралась (стоит сервер на windows). Сделано так из-за бага .NET драйвера под IIS.
...
Рейтинг: 0 / 0
14.11.2017, 19:44
    #39553078
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgr,

дискуссия пошла неконструктивная. Я тут соорудил пирамиду, но она падает, и во всем виноват ваш Firebird, с моими десятью прослойками все нормально, а у вас нет инфраструктуры, и т.д.
А?
И на почти любой вопрос ответ совсем не про то.
grgr В моём вопросе всё пронизано словом Firebird. Конфиги, суть, всё.
да охренеть как пронизано, что мы до сих пор не знаем используемую версию Firebird ODBC.
...
Рейтинг: 0 / 0
14.11.2017, 20:26
    #39553104
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgrПо настройкам посмотрел сейчас. Единственное что бросилось в глаза, это

WireCrypt = Enabled

на сервере, при том что легаси аутентификация не включенаНу так какие тогда вопросы к isc_login_error ? Лезем старым клиентом с легаси аутентификацией...
...
Рейтинг: 0 / 0
15.11.2017, 10:40
    #39553297
grgr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
Господа, спасибо, что тратите свое время!

>> мы до сих пор не знаем используемую версию Firebird ODBC
По этой ссылке взял libOdbcFb.so
https://sourceforge.net/projects/firebird/files/firebird-ODBC-driver/2.0.5-Release/OdbcFb-LIB-2.0.5.156.amd64.gz/download
Новее не нашел.

>> Лезем старым клиентом с легаси аутентификацией
Влад, может вы и правы, но тут два варианта:
1. Клиент - самый последний, который можно взять. Самый последний доступный клиент по линукс - старый, для 2.5? Сомневаюсь, потому что есть машина, единственная, на устаревшем CentOS5, где всё работает с новым FB3. К тому же на одном не получившемся "клиенте" (Debian) не работает через php и python, но через isql работает(!).
2. Я что-то сделал не так. Наиболее вероятно, так как один раз я машину настроил (CentOS5), однако все другие машины - по сохранившемуся гайду, по руководствам с firebirdsql.org (могу найти конкретную pdf-ку), по статьям в интернете - не получилось настроить. Есть ошибки:

a) PHP Fatal error: Out of memory (allocated 262144) (tried to allocate 140307991625985 bytes) in /var/www/html/site/odbctest.php on line 15
Про проблемы лечения этой ошибки я написал в первом посте.

b) File "/usr/lib/python3.4/site-packages/fdb/fbcore.py", line 734, in connect
"Error while connecting to database:")
fdb.fbcore.DatabaseError: ('Error while connecting to database:\n- SQLCODE: -999\n- unknown ISC error 335545106', -999, 335545106)
выглядит вот так в Питоне при использовании библиотеки libfbclient.so.2 напрямую (я проверил strace этот факт).

Однако я не могу понял, что не так, потому как эта же библиотека используется на рабочем сервере, все версии файлов идентичны и там клиент не считает, что он отстал от сервера по версии. Это сводит меня с ума.

Может быть есть какая-то другая версия libfbclient.so которая совершенно точно с поддержкой FB3, взятая у кого-то с работающего клиента, например?

>> У unixodbc есть клиент (вроде isql) чтобы проверить работоспособность именно unixodbc+libOdbcFb ?
Единственное, что есть родного к unixODBC это GUI-Qt пакет с графическими программами работы. У меня только консоль.
При этом на машине с CentOS7 вообще нет упоминания о unixODBC, есть pocoODBC или что-то похожее, а ошибки те же.
...
Рейтинг: 0 / 0
15.11.2017, 11:15
    #39553333
grgr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
Я был нtправ в одном моменте: isql этот, что я указываю - оказался частью unixODBC. Не обращал внимания.
...
Рейтинг: 0 / 0
15.11.2017, 11:29
    #39553341
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgr,

читай документацию. В данном случае release notes. Там описано как настроить firebird 3.0 для работы с fbclient 2.5.

И ещё раз уж ты не привязан к хостеру то самое время подумать о переходе на php 7.0. Там и x64 драйверы есть и сам пых работает в 2-3 раза быстрее предыдущих версий.
...
Рейтинг: 0 / 0
15.11.2017, 13:13
    #39553429
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgrЯ узнал, что это ошибка может значить: 99,8% случаев в интернете касаются банального
ограничения php по памяти.

А ничего, что первая же ссылка в гугле
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768309 ?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2017, 13:17
    #39553435
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
15.11.2017 13:13, Dimitry Sibiryakov пишет:
>
> А ничего, что первая же ссылка в гугле...

гугель всем выдаёт разное. (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2017, 14:25
    #39553549
grgr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
C php7.2 на CentOS 7 ошибка та же.

Намекните, как мне применить указанное Вами? Если честно, я это находил, поэтому и сделал кое какие выводы в первом посте. У меня нет таких ошибок с типами данных, которые приведены в пример. Ладно, учтем про Sybase, хотя у нас не Sybase. Такая же ошибка есть при работе с MS SQL, там тоже ошибка в нестандартных типах данных.

p.s.: сожалею, но редактировать посты я не могу, поэтому не могу дополнять первый пост дополнительной информацией.
...
Рейтинг: 0 / 0
15.11.2017, 14:27
    #39553554
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgrЛадно, учтем про Sybase, хотя у нас не Sybase.

Ты дальше заголовка явно не читал. Баг - в PHP, драйвера тут ни при чём.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2017, 15:04
    #39553597
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgr,

я не пробовал работать через odbc, но в

CentOS 7
PHP 7.0 x64
PDO
fbclient x64 3.0.1

Полёт нормальный. Никаких приседаний с авторизацией не делаю.

Да и со старым fbclient всё легко настраивается нужно только прочитать в RN https://www.firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-compat-legacyauth.html

но ты можешь продолжать упорствовать
...
Рейтинг: 0 / 0
15.11.2017, 15:58
    #39553661
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
grgrp.s.: сожалею, но редактировать посты я не могу, поэтому не могу дополнять первый пост дополнительной информацией.Пиши по ходу топика, побольше конкретных ответов на вполне конкретные вопросы, что-то интересное могу собрать и в первый пост, только я пока такой нужды не наблюдаю.
...
Рейтинг: 0 / 0
15.11.2017, 16:46
    #39553710
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
Dimitry Sibiryakov,

кстати, почитав баг и пройдя по ссылкам я так и не понял, пропатчили это месте в апстриме PHP или решили латать дырку требуя в каждом драйвере, чтобы функция работала

Во всяком случае, как кажется тикета "PHP не проверяет возвращаемое значение" так и не создали
...
Рейтинг: 0 / 0
15.11.2017, 16:48
    #39553714
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
Ariochпропатчили это месте в апстриме PHP или

Ещё, апстрим-апстримом, но ведь в Дебиане "патч наложен и работает" на php 5.4

а у ТС'а - 5.6

в связи с чем дурацкий вопрос, либо у него древний 5.6, старее этого бага, либо в Дебиане пропатчили ТОЛЬКО 5.4 и не ап-портировали патч на 5.6
...
Рейтинг: 0 / 0
15.11.2017, 17:00
    #39553731
grgr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
Симонов Денис,

Как вы настроили PDO в php? я фундаментально глупости с компиляцией php с указанием каталога сервера fb(!) на этой же машине не понимаю. А в исходниках 7.2 php для CentOS у меня просто не было configure. Для простых людей как я, есть просто php-pdo-firebird файл или мануал лучший, чем копия с php.net?

И, пожалуйста, скажете, где вы взяли вашу версию libfbclient.so. Сравню.

Мне подойдет любой обходной путь для связи с fb3.0 из линукса. Буду счастлив.
...
Рейтинг: 0 / 0
15.11.2017, 17:45
    #39553761
yellowboy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти
Симонов Денис,

тема стала интересной. Хочется повторить твой стенд и показать автору, что всё же он где-то ошибается или убедиться в обратном.

Ставлю Centos 7, всё понятно. Далее PHP 7.0 x64. Из какого репозитория ты ставил PHP, remi (чтобы было максимальное совпадение)?
PDO: ставим последнюю версию php-pdo?
Настариваем ли мы каким-то образом сам PHP?
fbclient x64: где взять твою версию?
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / При исполнении обычного SQL запроса через ODBC требует ненормальное количество памяти / 25 сообщений из 27, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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