Kbase P138668: 4GL/ABL: SYSTEM ERROR: Memory violation. (49) referencing a buffer's data-source query attribute.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  17/03/2011 |
|
Status: Verified
SYMPTOM(s):
4GL/ABL: SYSTEM ERROR: Memory violation. (49) referencing a buffer's data-source query attribute.
SYSTEM ERROR: Memory violation. (49)
** Save file named core for analysis by Progress Software Corporation. (439)
Session crashes storing a buffer's data-source query in a handle variable or assigning a buffer's data-source query to a handle variable.
The following statement crashes the 4GL/ABL client session under 10.1C 32-bit tries to store the buffer's data-source query to a handle variable:
assign hqQuerySaved = buffer ttMyOrder:data-source:query.
The following statement crashes the 4GL/ABL client session under 10.1C 64-bit when it tries to assign a handle variable to the buffer's data-source query:
assign buffer ttMyOrder:data-source:query = hqQuery.
PROGRESS stack trace under 10.1C 32-bit client:
Command line arguments are
/view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres sports2000 -H localhost -N tcp -S 23456 -p TestFillCrash.p
Startup parameters:
-pf /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/startup.pf,(end .pf),-db sports2000,-H localhost,-N tcp,-S 23456,-p TestFillCrash.p
#1 [0x967483] uttraceback+0x144 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#2 [0x969b63] uttrace+0x13c from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#3 [0x969a07] utcore+0x103 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#4 [0x44cb79] drexit+0x3ed from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#5 [0x4a2fe9] drSigFatal+0x85 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#6 [0x4430c4f0] __sched_getscheduler@@GLIBC_2.2.5+0x4430c4f0 from /lib64/tls/libpthread.so.0
#7 [0x777986] umUICtoDITEM+0x6d from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#8 [0x5b7e71] umDSourceGetAttr+0x28f from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#9 [0x612ab8] umSuperGetAttr+0x125 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#10 [0x57234c] ioGetAttribute+0xbb from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#11 [0x477a99] fmewdaxCore+0x1a4 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#12 [0x477070] fmEWDAXN+0x80 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#13 [0x47809c] fmeval+0x5cc from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#14 [0x719603] rnasgsupersimple+0x1c3 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#15 [0x7192f8] rnasgsimple+0x30 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#16 [0x744e30] rnexec_entry+0x432 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#17 [0x746a4e] rninterpret+0x41 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#18 [0x5dad48] umeDispatchEvent+0x1048 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#19 [0x8f8094] wvRunDispatcher+0xf7 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#20 [0x6be9fb] iodispatch+0xa0 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#21 [0x489edb] rnrq+0xfb from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#22 [0x446ced] main+0x379 from /view/rdl101c_sp2_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#23 [0x4381c3fb] __tls_get_addr@@GLIBC_2.3+0x4381c3fb from /lib64/tls/libc.so.6
** ABL Stack Trace **
--> /users/ts/yshanshi/p44253_TestFillCrash.ped (/users/ts/yshanshi/p44253_TestFillCrash.ped) at line 66
adecomm/_runcode.p (adecomm/_runcode.r) at line 659
ExecuteRun adeedit/_proedit.p (adeedit/_proedit.r) at line 3560
RunFile adeedit/_proedit.p (adeedit/_proedit.r) at line 10571
adeedit/_proedit.p (adeedit/_proedit.r) at line 12226
** Persistent procedures/Classes **
PROGRESS stack trace under 10.1C 64 bit client:
Command line arguments are
/view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres sports2000 -H localhost -N tcp -S 23456 -p TestFillCrash.p
Startup parameters:
-pf /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/startup.pf,(end .pf),-db sports2000,-H localhost,-N tcp,-S 23456,-p TestFillCrash.p
#1 [0x965b43] uttraceback+0x144 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#2 [0x968223] uttrace+0x13c from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#3 [0x9680c7] utcore+0x103 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#4 [0x44c9e4] drexit+0x3f8 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#5 [0x4a2c69] drSigFatal+0x85 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#6 [0x4430c4f0] __sched_getscheduler@@GLIBC_2.2.5+0x4430c4f0 from /lib64/tls/libpthread.so.0
#7 [0x959a07] st_free+0x31 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#8 [0x735e26] rndynqunprep+0x1c from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#9 [0x733575] rnDSourceDetachQuery+0x42 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#10 [0x5b8281] umDSourceSetAttr+0x1ce from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#11 [0x6111ce] umSuperSetAttr+0x21a from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#12 [0x571d83] ioSetAttribute+0x85 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#13 [0x719911] rnsetLhsAttr+0x199 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#14 [0x716fef] rnuassgn+0xdd5 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#15 [0x7189cd] rnasgsimple+0x115 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#16 [0x744370] rnexec_entry+0x432 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#17 [0x745f6e] rninterpret+0x41 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#18 [0x489c32] rnrq+0xf2 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#19 [0x446b91] main+0x379 from /view/rdl101c_sp1_linuxx86_64/vobs_prgs/linuxx86_64/dlc/bin/_progres
#20 [0x4381c3fb] __tls_get_addr@@GLIBC_2.3+0x4381c3fb from /lib64/tls/libc.so.6
** ABL Stack Trace **
--> TestFillCrash.p (TestFillCrash.p) at line 71
** Persistent procedures/Classes **
Code to reproduce the issue:
/* TestFillCrash.p */
define temp-table ttMyOrder no-undo
before-table ttMyOrderBefore
field Ordernum as integer
field CustNum as integer
field OrderDate as date
field ShipDate as date
field PromiseDate as date
field Carrier as character
field Instructions as character
field PO as character
field Terms as character
field SalesRep as character
field BillToID as integer
field ShipToID as integer
field OrderStatus as character
field WarehouseNum as integer
field Creditcard as character
index OrderNum is primary unique
Ordernum
.
define temp-table ttMyOrderLine no-undo
before-table ttMyOrderLineBefore
field Ordernum as integer
field Linenum as integer
field Itemnum as integer
field Price as decimal
field Qty as integer
field Discount as integer
field ExtendedPrice as decimal
field OrderLineStatus as character
index OrderLine is primary unique
Ordernum Linenum
.
define dataset dsMyOrder for ttMyOrder, ttMyOrderLine
data-relation MyOrderLine for ttMyOrder, ttMyOrderLine
relation-fields (Ordernum, Ordernum)
.
define data-source srcMyOrder for Order.
define data-source srcMyOrderLine for OrderLine.
define variable i as integer no-undo.
define variable hqQuery as handle no-undo.
define variable hqQuerySaved as handle no-undo.
message "Beginning fill crash test" view-as alert-box.
dataset dsMyOrder:set-callback-procedure("BEFORE-FILL", "attachOrderTables").
dataset dsMyOrder:set-callback-procedure("AFTER-FILL", "detachOrderTables").
do i = 1 to 10:
if not session:batch-mode then hide all.
message "Running fill" i ":" view-as alert-box.
buffer ttMyOrder:batch-size = 1.
run attachOrderTables (
input dataset dsMyOrder by-reference
).
message "Storing old data-source query" view-as alert-box.
assign hqQuerySaved = buffer ttMyOrder:data-source:query.
create query hqQuery.
hqQuery:add-buffer(buffer ttMyOrder:data-source:get-source-buffer(1)).
hqQuery:query-prepare("for each Order no-lock where Order.Ordernum = " + string(i)).
message "Assigning new data-source query" view-as alert-box.
assign buffer ttMyOrder:data-source:query = hqQuery.
message "Running fill" view-as alert-box.
buffer ttMyOrder:fill.
message "Ran fill" view-as alert-box.
assign buffer ttMyOrder:data-source:query = hqQuerySaved.
message "Restored old data-source query" view-as alert-box.
delete object hqQuery.
run detachOrderTables (
input dataset dsMyOrder by-reference
).
end.
dataset dsMyOrder:set-callback-procedure("BEFORE-FILL", ?).
dataset dsMyOrder:set-callback-procedure("AFTER-FILL", ?).
if not session:batch-mode then hide all..
message "Ending fill crash test" view-as alert-box.
procedure attachOrderTables:
define input parameter dataset for dsMyOrder.
buffer ttMyOrder:fill-mode = "empty".
buffer ttMyOrderLine:fill-mode = "empty".
buffer ttMyOrder:attach-data-source(data-source srcMyOrder:handle, "").
buffer ttMyOrderLine:attach-data-source(data-source srcMyOrderLine:handle, "").
end procedure. /* attachOrderTables */
procedure detachOrderTables:
define input parameter dataset for dsMyOrder.
buffer ttMyOrder:detach-data-source.
buffer ttMyOrderLine:detach-data-source.
end procedure. /* detachOrderTables */.
FACT(s) (Environment):
All Supported Operating Systems
OpenEdge 10.1C
OpenEdge 10.1C01 32-bit Service Pack
OpenEdge 10.1C02 32-bit Service Pack
OpenEdge 10.1C01 64-bit Service Pack
OpenEdge 10.1C02 64-bit Service Pack
CAUSE:
Bug# OE00178787
FIX:
Upgrade to OpenEdge 10.1C03, OpenEdge 10.2A01 or higher