#45497 [Fbk-Opn]: memory leak in select statement for varchar2 above 2000 characters

2008-07-15 Thread teju_baba at hotmail dot com
 ID:   45497
 User updated by:  teju_baba at hotmail dot com
 Reported By:  teju_baba at hotmail dot com
-Status:   Feedback
+Status:   Open
 Bug Type: OCI8 related
 Operating System: Solaris 10
 PHP Version:  5.2.6
 Assigned To:  sixd
 New Comment:

This is the create statement for the 2 tables.
CREATE TABLE NAS.AGENCY 
( 
AGENCY_ID NUMBER(9), 
AGENCY_NAME VARCHAR2(60) NOT NULL , 
AGENCY_TYPE VARCHAR2(1) NOT NULL , 
AGENCY_ABBR VARCHAR2(10), 
ADMIN_HIST VARCHAR2(2000) NOT NULL , 
DATE_UPDATED DATE NOT NULL , 
PRIMARY KEY (AGENCY_ID) VALIDATE ) 
TABLESPACE USERS PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL
128K BUFFER_POOL DEFAULT) LOGGING;

CREATE TABLE PIC.PC_CATALOGUE ( 
CATALOGUE_ID CHAR(10), 
ACCESSION_NO VARCHAR2(30), 
NEGATIVE_NO VARCHAR2(30), 
COLLECTION_TITLE VARCHAR2(1024), 
SUBJECT VARCHAR2(1024), 
CAPTION VARCHAR2(1024), 
MEDIUM VARCHAR2(3), 
SOURCE VARCHAR2(255), 
SOURCE_ADDRESS VARCHAR2(255), 
SOURCE_CONTACT_PERSON VARCHAR2(30), 
LOCATION VARCHAR2(10), 
SHELF_NO VARCHAR2(10), 
IMAGE_NO VARCHAR2(10), 
ACQUIRED_DATE DATE, 
ACCESSION_DATE DATE, 
RECORDING_DATE DATE, 
ACCESS_CODE VARCHAR2(3), 
PHOTOCD_ID VARCHAR2(50), 
PHOTOCD_NO VARCHAR2(50), 
ACCESSION_CONDITION VARCHAR2(50), 
REMARK VARCHAR2(255), 
OWNER VARCHAR2(30), 
STATUS CHAR(1), 
CHANGED_BY VARCHAR2(30), 
CHANGE_DATE DATE, 
SEARCH_FIELD VARCHAR2(4000), 
ACCESS_ID VARCHAR2(20), 
CREATE_DATE DATE, 
OLD_ACCESSION_NO NUMBER(10), 
IMAGE_LINK VARCHAR2(1024), 
EXTERNAL_SOURCE VARCHAR2(255), 
CAT_REMARKS VARCHAR2(4000),
 CONSTRAINT PC_CATALOGUE_PK PRIMARY KEY (CATALOGUE_ID) VALIDATE ) 
TABLESPACE USERS PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL
409600K BUFFER_POOL DEFAULT) LOGGING;

Environment Variables:
MANPATH=:/usr/man:/usr/share/man:/opt/SUNWvts/man:/opt/SUNWexplo/man:/opt/SUNWsneep/man:/opt/CTEact/man
TOMCAT_HOME=/otej/sunSparcSol10/tomcat/apache-tomcat-5.5.26
TERM=xterm
SHELL=/bin/bash
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
TMPDIR=/var/tmp
SSH_CLIENT=10.203.2.27 3622 22
OLDPWD=/
SSH_TTY=/dev/pts/2
USER=root
LD_LIBRARY_PATH=:/otej/instantclient:/usr/openwin/lib
OPENWINHOME=/usr/openwin
WEBLOGIC_HOME=/usr/local/bea/weblogic81/server/bin
MAIL=/var/mail//root
PATH=/usr/sbin:/usr/bin:/usr/local/bin:/otej/j2sdk1.4.2_16/bin:/bin:/usr/ccs/bin:/usr/openwin/bin:/usr/dt/bin:/usr/platform/SUNW,Sun-Fire-V245/sbin:/opt/sun/bin:/opt/SUNWvts/bin:/opt/SUNWexplo/bin:/opt/SUNWsneep/bin:/opt/CTEact/bin
PWD=/otej/project/a2osync
JAVA_HOME=/otej/j2sdk1.4.2_16
EDITOR=vi
TZ=Singapore
[EMAIL PROTECTED] #
[EMAIL PROTECTED] 
SHLVL=1
HOME=/
LOGNAME=root
SSH_CONNECTION=10.203.2.27 3622 10.203.2.72 22
_=/usr/bin/env

* TNS_ADMIN is not set as i do not use tnsnames.ora
setting it to /otej/instantclient does not help either

Versions:
Machine 1: (Web server with Oracle Instant Client)
OS: Solaris 10
PHP: 5.2.6
OCI: 1.3.3
Oracle Instant Client: 10.1.0.3

Machine 2: (Oracle DB)
OS: Linux (Redhat Enterprise 3)
Oracle: 10g Enterprise Edition: 10.1.0.3

I'll try to send you the sample data soon.


Previous Comments:


[2008-07-13 17:24:00] [EMAIL PROTECTED]

Can you email me CREATE TABLE and example (not real data) INSERT
statements so I have the same values as you?  Also let me know your
NLS_LANG or other globalization settings, and exact DB version.



[2008-07-13 07:54:27] teju_baba at hotmail dot com

Here is another example:
$query=select catalogue_id, accession_no, negative_no,
collection_title, subject, caption, medium, source, source_address,
source_contact_person, location, shelf_no, image_no, access_code,
photocd_id, photocd_no, accession_condition, remark, owner, status,
changed_by, search_field, access_id, old_accession_no, image_link,
external_source, cat_remarks from PC_CATALOGUE where
CATALOGUE_ID='289713';

Actual Result overflows on search_field and results in garbage for the
following fields:

Array
(
[CATALOGUE_ID] = 289713
[ACCESSION_NO] = 0
[NEGATIVE_NO] = S128961
[COLLECTION_TITLE] =
[SUBJECT] = CONSTITUENCIES (VISIT, MEET PEOPLE SESSION, ETC)
[CAPTION] = COMMUNICATIONS AND LABOUR MINISTER ONG TENG CHEONG TOURING
AYER RAJAH CONSTITUENCY [GROUP DESCRIPTION BY EVENT FROM TRANSFERRING
AGENCY]
[MEDIUM] = PCD
[SOURCE] = MINISTRY OF INFORMATION AND THE ARTS (MITA)
[SOURCE_ADDRESS] =
[SOURCE_CONTACT_PERSON] =
[LOCATION] =
[SHELF_NO] =
[IMAGE_NO] = 0044
[ACCESS_CODE] = B
[PHOTOCD_ID] = 8262-3202-1062
[PHOTOCD_NO] = 19980006698
[ACCESSION_CONDITION] =
[REMARK] =
[OWNER] = CD IMAGING
[STATUS] = 0
[CHANGED_BY] = CD IMAGING
[SEARCH_FIELD] = C
[ACCESS_ID] = MMUNICATIONS AND LAB
[OLD_ACCESSION_NO] =
-103019221621693332183419282117282223693512
[IMAGE_LINK] = EVENT FROM TRANSFERRING AGENCY] CONSTITUENCIES (VISIT,
MEET PEOPLE
[EXTERNAL_SOURCE] = SESSION, ETC) MINISTRY OF INFORM
[CAT_REMARKS

#45497 [NEW]: memory leak in select statement for varchar2 above 2000 characters

2008-07-13 Thread teju_baba at hotmail dot com
From: teju_baba at hotmail dot com
Operating system: Solaris 10
PHP version:  5.2.6
PHP Bug Type: OCI8 related
Bug description:  memory leak in select statement for varchar2 above 2000 
characters

Description:

Client: Solaris 10 / Sparc
PHP 5.2.3 / 5.2.5 / 5.2.6 
OCI 1.2.3 / 1.3.3
Instant Client: 10.1
Oracle 10g Enterprise Edition: 10.1.0.3

TABLE AGENCY SCHEMA
AGENCY_ID NUMBER, AGENCY_NAME VARCHAR2(60), AGENCY_TYPE VARCHAR2(1) ,
AGENCY_ABBR VARCHAR2(10) , ADMIN_HIST VARCHAR2(2000),
DATE_UPDATED DATE 

A simple query like select * from agency where agency_id=40 produces an
overflow at either oci_execute() or oci_fetch_assoc()

Result is garbage for ADMIN_HIST and overflows on to DATE_UPDATED.

For similar queries, the query may or may not return a row.
Say: select * from agency where agency_id=54 returns NULL when there is
valid data.




Reproduce code:
---
$conn = oci_connect('user', 'pwd', '//10.203.2.14/db');
$query=select * from agency where agency_id=40;
$stid = oci_parse($conn, $query);
$r = oci_execute($stid, OCI_DEFAULT);
while ($row = oci_fetch_assoc($stid)) { 
print_r($row);
}
oci_close($conn);

Expected result:

xl*
[DATE_UPDATED] = 00-DECEMBER-00

the words xl * are garbage characters
the DATE_UPDATED is invalid (actual date is: 11-APR-08)





Actual result:
--
Array
(
[AGENCY_ID] = 40
[AGENCY_NAME] = City Council
[AGENCY_TYPE] = A
[AGENCY_ABBR] = CC
[ADMIN_HIST] = The Municipal Council became known as the City Council on
22 September 1951. The City Council, the local authority within the city
area, consisted of a President appointed by the Governor-in-Council and 27
members of whom 18 were elected.

The City Council enjoyed a wide measure of autonomy in matters placed
under its control by the Municipal Ordinance and was empowered to make
by-laws but was subjected to certain safeguards. The detailed execution of
City Council policies was undertaken by specialised departments concerned
with health, water, electricity and so forth.

Under the Local Government Ordinance of 1957, the administration of the
city area for all local government purposes was the responsibility of a
City Council of 32 elected Councillors.In July 1959, the government
absorbed the City Council into the central government and most of its
functions were transferred to the Ministry of National Development.xl*
[DATE_UPDATED] = 00-DECEMBER-00
)


-- 
Edit bug report at http://bugs.php.net/?id=45497edit=1
-- 
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=45497r=trysnapshot52
Try a CVS snapshot (PHP 5.3): 
http://bugs.php.net/fix.php?id=45497r=trysnapshot53
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=45497r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=45497r=fixedcvs
Fixed in release: 
http://bugs.php.net/fix.php?id=45497r=alreadyfixed
Need backtrace:   http://bugs.php.net/fix.php?id=45497r=needtrace
Need Reproduce Script:http://bugs.php.net/fix.php?id=45497r=needscript
Try newer version:http://bugs.php.net/fix.php?id=45497r=oldversion
Not developer issue:  http://bugs.php.net/fix.php?id=45497r=support
Expected behavior:http://bugs.php.net/fix.php?id=45497r=notwrong
Not enough info:  
http://bugs.php.net/fix.php?id=45497r=notenoughinfo
Submitted twice:  
http://bugs.php.net/fix.php?id=45497r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=45497r=globals
PHP 4 support discontinued:   http://bugs.php.net/fix.php?id=45497r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=45497r=dst
IIS Stability:http://bugs.php.net/fix.php?id=45497r=isapi
Install GNU Sed:  http://bugs.php.net/fix.php?id=45497r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=45497r=float
No Zend Extensions:   http://bugs.php.net/fix.php?id=45497r=nozend
MySQL Configuration Error:http://bugs.php.net/fix.php?id=45497r=mysqlcfg



#45497 [Com]: memory leak in select statement for varchar2 above 2000 characters

2008-07-13 Thread teju_baba at hotmail dot com
 ID:   45497
 Comment by:   teju_baba at hotmail dot com
 Reported By:  teju_baba at hotmail dot com
 Status:   Open
 Bug Type: OCI8 related
 Operating System: Solaris 10
 PHP Version:  5.2.6
 New Comment:

Here is another example:
$query=select catalogue_id, accession_no, negative_no,
collection_title, subject, caption, medium, source, source_address,
source_contact_person, location, shelf_no, image_no, access_code,
photocd_id, photocd_no, accession_condition, remark, owner, status,
changed_by, search_field, access_id, old_accession_no, image_link,
external_source, cat_remarks from PC_CATALOGUE where
CATALOGUE_ID='289713';

Actual Result overflows on search_field and results in garbage for the
following fields:

Array
(
[CATALOGUE_ID] = 289713
[ACCESSION_NO] = 0
[NEGATIVE_NO] = S128961
[COLLECTION_TITLE] =
[SUBJECT] = CONSTITUENCIES (VISIT, MEET PEOPLE SESSION, ETC)
[CAPTION] = COMMUNICATIONS AND LABOUR MINISTER ONG TENG CHEONG TOURING
AYER RAJAH CONSTITUENCY [GROUP DESCRIPTION BY EVENT FROM TRANSFERRING
AGENCY]
[MEDIUM] = PCD
[SOURCE] = MINISTRY OF INFORMATION AND THE ARTS (MITA)
[SOURCE_ADDRESS] =
[SOURCE_CONTACT_PERSON] =
[LOCATION] =
[SHELF_NO] =
[IMAGE_NO] = 0044
[ACCESS_CODE] = B
[PHOTOCD_ID] = 8262-3202-1062
[PHOTOCD_NO] = 19980006698
[ACCESSION_CONDITION] =
[REMARK] =
[OWNER] = CD IMAGING
[STATUS] = 0
[CHANGED_BY] = CD IMAGING
[SEARCH_FIELD] = C
[ACCESS_ID] = MMUNICATIONS AND LAB
[OLD_ACCESSION_NO] =
-103019221621693332183419282117282223693512
[IMAGE_LINK] = EVENT FROM TRANSFERRING AGENCY] CONSTITUENCIES (VISIT,
MEET PEOPLE
[EXTERNAL_SOURCE] = SESSION, ETC) MINISTRY OF INFORM
[CAT_REMARKS] =)


Previous Comments:


[2008-07-13 07:49:55] teju_baba at hotmail dot com

Description:

Client: Solaris 10 / Sparc
PHP 5.2.3 / 5.2.5 / 5.2.6 
OCI 1.2.3 / 1.3.3
Instant Client: 10.1
Oracle 10g Enterprise Edition: 10.1.0.3

TABLE AGENCY SCHEMA
AGENCY_ID NUMBER, AGENCY_NAME VARCHAR2(60), AGENCY_TYPE VARCHAR2(1) ,
AGENCY_ABBR VARCHAR2(10) , ADMIN_HIST VARCHAR2(2000),
DATE_UPDATED DATE 

A simple query like select * from agency where agency_id=40 produces an
overflow at either oci_execute() or oci_fetch_assoc()

Result is garbage for ADMIN_HIST and overflows on to DATE_UPDATED.

For similar queries, the query may or may not return a row.
Say: select * from agency where agency_id=54 returns NULL when there is
valid data.




Reproduce code:
---
$conn = oci_connect('user', 'pwd', '//10.203.2.14/db');
$query=select * from agency where agency_id=40;
$stid = oci_parse($conn, $query);
$r = oci_execute($stid, OCI_DEFAULT);
while ($row = oci_fetch_assoc($stid)) { 
print_r($row);
}
oci_close($conn);

Expected result:

xl*
[DATE_UPDATED] = 00-DECEMBER-00

the words xl * are garbage characters
the DATE_UPDATED is invalid (actual date is: 11-APR-08)





Actual result:
--
Array
(
[AGENCY_ID] = 40
[AGENCY_NAME] = City Council
[AGENCY_TYPE] = A
[AGENCY_ABBR] = CC
[ADMIN_HIST] = The Municipal Council became known as the City Council
on 22 September 1951. The City Council, the local authority within the
city area, consisted of a President appointed by the Governor-in-Council
and 27 members of whom 18 were elected.

The City Council enjoyed a wide measure of autonomy in matters placed
under its control by the Municipal Ordinance and was empowered to make
by-laws but was subjected to certain safeguards. The detailed execution
of City Council policies was undertaken by specialised departments
concerned with health, water, electricity and so forth.

Under the Local Government Ordinance of 1957, the administration of the
city area for all local government purposes was the responsibility of a
City Council of 32 elected Councillors.In July 1959, the government
absorbed the City Council into the central government and most of its
functions were transferred to the Ministry of National Development.xl*
[DATE_UPDATED] = 00-DECEMBER-00
)






-- 
Edit this bug report at http://bugs.php.net/?id=45497edit=1