Bug #79277 [NoF->Csd]: pdo_odbc accessing SAP 16.0 ASE Fatal error: Allowed memory size ...

From: Date: Sun, 23 Feb 2020 04:33:03 +0000
Subject: Bug #79277 [NoF->Csd]: pdo_odbc accessing SAP 16.0 ASE Fatal error: Allowed memory size ...
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-225668@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=79277&edit=1 ID: 79277 User updated by: khleung at isfactory dot com Reported by: khleung at isfactory dot com Summary: pdo_odbc accessing SAP 16.0 ASE Fatal error: Allowed memory size ... -Status: No Feedback +Status: Closed Type: Bug Package: PDO ODBC Operating System: CentOS 7 PHP Version: 7.4.2 Assigned To: cmb Block user comment: N Private report: N New Comment: Problem still exits waiting for further recommendations Previous Comments: ------------------------------------------------------------------------ [2020-02-23 04:22:08] php-bugs at lists dot php dot net No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Re-Opened". Thank you. ------------------------------------------------------------------------ [2020-02-16 06:19:00] khleung at isfactory dot com The following patch has been added/updated: Patch Name: odbc_tracelog_revised Revision: 1581833940 URL: https://bugs.php.net/patch-display.php?bug=79277&patch=odbc_tracelog_revised&revision=1581833940 ------------------------------------------------------------------------ [2020-02-16 06:08:07] khleung at isfactory dot com The following patch has been added/updated: Patch Name: odbc_tracelog Revision: 1581833287 URL: https://bugs.php.net/patch-display.php?bug=79277&patch=odbc_tracelog&revision=1581833287 ------------------------------------------------------------------------ [2020-02-15 17:11:24] cmb@php.net Could you please provide an ODBC trace? Make sure that it contains no sensitive info before you post it. ------------------------------------------------------------------------ [2020-02-15 15:43:54] khleung at isfactory dot com Description: ------------ Having installed php 7.4.2 on CentOS 7 1804 64-bit (3.10.0-1062.12.1.el7.x86_64) on a VMware host : 2 GB ram, 250G HardDisk and 1 CPU Core. PHP and necessary modules are installed via yum install php and also by compiling using source from php-7.4.2.tar.gz With SAP SDK for ASE binary file SDKASE160003P_7-21012007.TGZ installed A testing script was prepared to check the connecting It works fine to query a simple varchar(3) with "SELECT name FROM sysusers ORDER BY uid ASC" but it crashed : SELECT name, environ FROM sysusers ORDER BY uid ASC or even SELECT top 1 name, environ FROM sysusers ORDER BY uid ASC with following message: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4294967320 bytes) in /home/sybase/sybconnect1.php on line 16 sysusers table layout as follow Column_name Type Length Prec Scale Nulls ----------- -------- ------ ---- ----- ----- suid int 4 NULL NULL 0 uid int 4 NULL NULL 0 gid int 4 NULL NULL 0 name char 30 NULL NULL 0 environ varchar 255 NULL NULL 1 user_status smallint 2 NULL NULL 0 via UnixODBC Client tool : isql /bin/isql SB007H sa [sapassword] all of the above query works perfectly without any error Test script: --------------- [sybase@nagioshost lib]$ vi sybconnect.php <?php //PDO Driver Connect to Sybase try { //$pdo = new PDO("odbc:Driver={Adaptive Server Enterprise};NA=lx007hsyb,5000;Uid=sa;Pwd=[sapassword];"); $pdo = new PDO("odbc:SB007H", "sa", "[sapassword]"); $pdo_status = "dsn: odbc:SB007H Connected to ASE 16\n"; echo $pdo_status; $getUsers = $pdo->prepare('SELECT name FROM sysusers ORDER BY uid ASC'); while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) { $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n"; print $data; } $stmt = null; $getUsers->execute(); $users = $getUsers->fetchAll(); if ($users) { foreach ($users as $user) { echo $user['name']."\n"; } } else { trigger_error('No users.'); } } catch(PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } :wq Expected result: ---------------- sysusers contains only 20 rows and so it was expected All query result set can shown Actual result: -------------- pdo_odnc FetchAll queries with column of varchar(255) crashed with following message: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4294967320 bytes) in /home/sybase/sybconnect1.php on line 16 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=79277&edit=1

« previous php.bugs (#225668) next »