<< Back to previous view |
![]() |
[QA-38] DBMS_XMLPARSER.FREEPARSER doesn't release UGA memory. Created: 06/Jun/08 Updated: 06/Jun/08 |
|
Status: | Closed |
Project: | Questions & Answers |
Fix Version/s: | None |
Type: | Oracle - Internals | Priority: | Major |
Reporter: | ubTools Support | Assignee: | ubTools Support |
Resolution: | Answered | Votes: | 0 |
Product Version: | Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production |
Operating System: | Solaris |
Description |
DBMS_XMLPARSER.FREEPARSER doesn't release UGA memory.
Session memory statistics before operation: SQL> select name,value from v$sesstat a, v$statname b 2 where a.statistic#=b.statistic# 3 and b.name like '%memory%' 4 and sid = 58 5 order by value desc; NAME VALUE ---------------------------------------------------------------- ---------- session pga memory 424336 session pga memory max 424336 session uga memory 209872 session uga memory max 209872 sorts (memory) 16 workarea memory allocated 14 6 rows selected. Operation: ... dbms_xmlparser.parseclob (v_parser, data_for_table); ... dbms_xmlparser.freeParser(v_parser); ... Session memory statistics after operation: SQL> select name,value from v$sesstat a, v$statname b 2 where a.statistic#=b.statistic# 3 and b.name like '%memory%' 4 and sid = 58 5 order by value desc; NAME VALUE ---------------------------------------------------------------- ---------- session pga memory 52396928 session pga memory max 52396928 session uga memory 51816784 session uga memory max 51816784 sorts (memory) 19 workarea memory allocated 14 6 rows selected. An excerpt from HEAPDUMP LEVEL 4 (UGA) dump: ... EXTENT 788 addr=ffffffff7ce90080 Chunk ffffffff7ce90090 sz= 392 free " " Chunk ffffffff7ce90218 sz= 184 freeable "kgiobdtb " Chunk ffffffff7ce902d0 sz= 1112 recreate "koh-kghu sessi " latch=0 ds ffffffff7ce9db50 sz= 1112 ct= 1 Chunk ffffffff7ce90728 sz= 2136 freeable "PLS non-lib hp " ds=ffffffff7cf6abd8 Chunk ffffffff7ce90f80 sz= 4288 freeable "qmxdpls_subhea " ds=ffffffff7ce96b78 Chunk ffffffff7ce92040 sz= 4288 freeable "qmxdpls_subhea " ds=ffffffff7ce96b78 Chunk ffffffff7ce93100 sz= 4288 freeable "qmxdpls_subhea " ds=ffffffff7ce96b78 Chunk ffffffff7ce941c0 sz= 4288 freeable "qmxdpls_subhea " ds=ffffffff7ce96b78 Chunk ffffffff7ce95280 sz= 4328 freeable "qmxdpls_subhea " ds=ffffffff7ce96b78 Chunk ffffffff7ce96368 sz= 48 freeable "allocator state" Chunk ffffffff7ce96398 sz= 72 freeable "persistant defi" Chunk ffffffff7ce963e0 sz= 48 freeable "kgbt " Chunk ffffffff7ce96410 sz= 48 freeable "frame segment " Chunk ffffffff7ce96440 sz= 64 freeable "qmxdpls_init_ug" Chunk ffffffff7ce96480 sz= 48 freeable "frame segment " Chunk ffffffff7ce964b0 sz= 72 freeable "frame segment " Chunk ffffffff7ce964f8 sz= 72 freeable "kxsxsi: frame " Chunk ffffffff7ce96540 sz= 1568 recreate "qmxdpls_subhea " latch=0 ds ffffffff7ce96b78 sz= 50681480 ct= 11820 ffffffff779d6940 sz= 4288 ffffffff779d7a00 sz= 4288 ffffffff779d8ac0 sz= 4288 ffffffff779d9b80 sz= 4288 ffffffff779dac40 sz= 4288 ffffffff779dbd00 sz= 4288 ffffffff779dcdc0 sz= 4288 ffffffff779dde80 sz= 4288 ffffffff779def40 sz= 4288 ffffffff779c04c0 sz= 4288 ffffffff779c1580 sz= 4288 ffffffff779c2640 sz= 4288 ffffffff779c3700 sz= 4288 ffffffff779c47c0 sz= 4288 ffffffff779c5880 sz= 4288 ffffffff779c6940 sz= 4288 ffffffff779c7a00 sz= 4288 ... ffffffff7ce93100 sz= 4288 ffffffff7ce941c0 sz= 4288 ffffffff7ce95280 sz= 4328 Chunk ffffffff7ce96b60 sz= 160 freeable "qmxdpls_heapptr" Chunk ffffffff7ce96c00 sz= 232 freeable "lob ctl struct " Chunk ffffffff7ce96ce8 sz= 80 freeable "frame " Chunk ffffffff7ce96d38 sz= 40 freeable "private oac inf" Chunk ffffffff7ce96d60 sz= 128 freeable "bnrdef and uac " Chunk ffffffff7ce96de0 sz= 600 recreate "bind var heap " latch=0 ds ffffffff7ce971f0 sz= 600 ct= 1 Chunk ffffffff7ce97038 sz= 928 freeable "kgiob " Chunk ffffffff7ce973d8 sz= 4160 freeable "koh-kghu sessi " ds=ffffffff7cf65710 Chunk ffffffff7ce98418 sz= 8192 freeable "kdit " Chunk ffffffff7ce9a418 sz= 40 free " " Chunk ffffffff7ce9a440 sz= 8192 freeable "kdit " Chunk ffffffff7ce9c440 sz= 48 freeable "ktatt " Chunk ffffffff7ce9c470 sz= 48 freeable "kdit " Chunk ffffffff7ce9c4a0 sz= 80 freeable "kgicu " Chunk ffffffff7ce9c4f0 sz= 5672 free " " Chunk ffffffff7ce9db18 sz= 2520 freeable "koh-kghu sessio" Chunk ffffffff7ce9e4f0 sz= 48 freeable "frame segment " Chunk ffffffff7ce9e520 sz= 40 freeable "frame segment " Chunk ffffffff7ce9e548 sz= 72 freeable "kxsxsi: frame " Chunk ffffffff7ce9e590 sz= 2464 perm "perm " alo=432 Chunk ffffffff7ce9ef30 sz= 48 freeable "allocator state" Chunk ffffffff7ce9ef60 sz= 80 freeable "frame " Chunk ffffffff7ce9efb0 sz= 128 freeable "bnrdef and uac " Chunk ffffffff7ce9f030 sz= 600 recreate "bind var heap " latch=0 ds ffffffff7ce9f440 sz= 600 ct= 1 Chunk ffffffff7ce9f288 sz= 928 freeable "kgiob " Chunk ffffffff7ce9f628 sz= 2520 freeable "koh-kghu sessio" EXTENT 789 addr=ffffffff7ce30080 Chunk ffffffff7ce30090 sz= 2016 perm "perm " alo=2016 ... Total heap size = 51790440 FREE LISTS: Bucket 0 size=56 ... Bucket 16 size=524312 Bucket 17 size=2097176 Total free space = 870336 UNPINNED RECREATABLE CHUNKS (lru first): PERMANENT CHUNKS: Chunk ffffffff7ce9e590 sz= 2464 perm "perm " alo=432 Chunk ffffffff7ce30090 sz= 2016 perm "perm " alo=2016 Chunk ffffffff7cf70090 sz= 288 perm "perm " alo=288 Chunk ffffffff7cf600a8 sz= 20320 perm "perm " alo=20320 Permanent space = 25088 ****************************************************** DBMS_SESSION.FREE_UNUSED_USER_MEMORY did not help. |
Comments |
Comment by ubTools Support [ 06/Jun/08 01:35 PM ] |
The UGA of PGA had been filled with a big chunk which has recreatable "qmxdpls_subhea". This chunk is 50681480 byte. (See Oracle Note:3518909.8: Calling Dbms_xmlparser.freeParser / dbms_xmldom.freeDocument in the procudure do not appear to free the memory. The leaked memory shows in heapdumps as "qmxdpls_subheap" Although the mentioned bug fixed in Oracle 9.2.0.6; the customer encounters the same problem in Oracle 9.2.0.8. Since the next usage of DBMS_XMLPARSER.PARSECLOB after a previous DBMS_XMLPARSER.FREEPARSER within the same session, the UGA did not grow. This is acceptable by the customer. |