Mark Wong wrote:
>I have a situation where I will see a kernel process use 100% of a
>processor on a Linux system when I try to evaluate an expression in a
>CALL statement. I have not seen a return from calling the stored
>procedure over the course of a weekend. Here's the example I have put
>together from 7.3.0.25 on a Linux system (RedHat 7.3):
>
>-----
>
>First stored procedure:
>
>CREATE DBPROC osdl_sapdb_test1
>AS
> VAR some_var FIXED (5);
>SUBTRANS BEGIN;
> SET some_var = 4;
> CALL osdl_sapdb_test2_part2(:some_var - 1);
>SUBTRANS END;;
>
>-----
>
>Second stored procedure:
>
>CREATE DBPROC osdl_sapdb_test2_part2(IN some_var FIXED(5))
>AS
>SUBTRANS BEGIN;
>SUBTRANS END;;
>
>-----
>
>Changing to call statement to simply be:
>
> CALL osdl_sapdb_test2_part2(:some_var);
>
>avoids this issue. I can collect x_cons output or trace data if someone
>would like me to.
The kernel process indeed runs into in an endless loop
if you use an expression as parameter of a db-procedure.
This bug will be fixed soon.
As workaround please evaluate the expression outside the procedure call, i.e.
CREATE DBPROC osdl_sapdb_test1
AS
VAR some_var FIXED (5);
tmp FIXED (5);
SUBTRANS BEGIN;
SET some_var = 4;
SET tmp = some_var - 1;
CALL osdl_sapdb_test2_part2(:tmp);
SUBTRANS END;;
Thanks for reporting the bug.
Thomas
--
Thomas Anhaus
SAP DB, SAP Labs Berlin
[EMAIL PROTECTED]
http://www.sapdb.org/
_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general
_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general