| << 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. |