Skip to Content

regex_replace: access violation

Hi all

We try to extract the table name from the workflow name. We built a custom function using regex_replace as follows.

return regex_replace(
    workflow_name(),
    '^WF_(.+)(_\[a-zA-Z0-9\]+){2}$',
    '$1', # replace everything with first group
    null
);

This fails with very non descriptive error message as can seen below. How do we fix this?

Kind regards

Thiemo

8104    6852    SYS-170101   13/04/2018
14:08:18  |Session BJ_HEñVISIT_LZ_INI|Work
flow WF_HEñVISIT_LZ_INI

8104    6852    SYS-170101   13/04/2018
14:08:18  System Exception
<ACCESS_VIOLATION> occurred. Process dump option is off. Process is not
dumped.

8104    6852    SYS-170101   13/04/2018
14:08:18  Call stack:

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19EF9DD,
XFunc_regexreplace::compute()+0589 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D15FE,
XCall_expr::compute()+0446 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D1E78,
XVal_call::compute()+0024 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D1EDB,
XVal_cast::compute()+0091 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D6831,
XStep_return::execute()+0065 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D68DD,
XStep_sblock::execute()+0061 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F1A0AC3D,
XFunc_script::compute()+0333 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F1A0AF2A,
XFunc_script::compute()+0490 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D15FE,
XCall_expr::compute()+0446 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D1E78,
XVal_call::compute()+0024 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D15A4,
XCall_expr::compute()+0356 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D6115,
XStep_call::execute()+0117 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D68DD, XStep_sblock::execute()+0061
byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19DB1D3,
XPlan_spec::execute()+0419 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19DF671,
XPlan_desc::execute()+0737 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19DACCB,
XPlan_spec::compute()+0923 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19DAF43,
XPlan_spec::compute()+0339 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D15FE,
XCall_expr::compute()+0446 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D6115,
XStep_call::execute()+0117 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19D68DD,
XStep_sblock::execute()+0061 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19DB1D3,
XPlan_spec::execute()+0419 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19DF671,
XPlan_desc::execute()+0737 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19DACCB,
XPlan_spec::compute()+0923 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F19DAF43,
XPlan_spec::compute()+0339 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F0B1AE61,
AE_Main_Process_Options()+64241 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000F0B4A315,
AE_Main()+2869 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000CD808167

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000CD809C1B

8104    6852    SYS-170101   13/04/2018
14:08:18  0x00000000CD80A729

8104    6852    SYS-170101   13/04/2018
14:08:18  0x000000000AB113D2,
BaseThreadInitThunk()+0034 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  0x000000000AC654F4,
RtlUserThreadStart()+0052 byte(s)

8104    6852    SYS-170101   13/04/2018
14:08:18  Registers:

8104    6852    SYS-170101   13/04/2018
14:08:18  RAX=0000000000000000  RBX=0000000021A88510  RCX=00000000F27BA5F0  RDX=000000001E1C7720  RSI=000000001FC8D670

8104    6852    SYS-170101   13/04/2018
14:08:18  RDI=0000000021C5F090  RBP=000000001D5C4F70  RSP=000000001D5C4E70  RIP=00000000F19EF9DD  FLG=0000000000010206

8104    6852    SYS-170101   13/04/2018
14:08:18  R8=000000001FC8D670   R9=000000001FC8E930  R10=000000001FC03364  R11=000000001FC7C214  R12=0000000000000000

8104    6852    SYS-170101   13/04/2018 14:08:18  R13=000000001FC8E930 
R14=000000001FC8E930 
R15=00000000AAAAAAAB

8104    6852    SYS-170101   13/04/2018
14:08:18  Exception code: C0000005
ACCESS_VIOLATION

8104    6852    SYS-170101   13/04/2018 14:08:18  Fault address: 
00007FFAF19EF9DD 01:00000000010BE9DD D:\SAP BusinessObjects\Data
Services\bin\acta.dll
Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Best Answer
    Apr 27 at 02:28 PM

    Incident 215526/2018 was opened therefor.

    Add comment
    10|10000 characters needed characters exceeded

  • May 02 at 11:02 AM

    From the top of the stack trace it identifies the issue is with the function call:

    XFunc_regexreplace::compute()+0589 byte(s)

    Reviewing the syntax of the regex_replace() function is is correct syntax to omit the <regular expression processing flags>

    https://help.sap.com/viewer/8092b085a68941f6aaa6708685a62b0d/4.2.10/en-US/663bf2aa3c154617b92d725cf37ef0b4.html

    I was able to reproduce this error however after modifying the call I did not receive the error please use the following syntax:

    regex_replace(
    'WF_aworkflowname',
    '^WF_(.+)(_\[a-zA-Z0-9\]+){2}$',
    '$1');

    Regards

    Bon

    Add comment
    10|10000 characters needed characters exceeded

  • Jun 11 at 08:31 AM

    Sorry for getting back to this so late. I had quite a bit a hassle to correctly understand Bons answer which is perfectly correct. The point is that I used the fourth parameter providing it with null value which leads to the mentioned error. If you use the emtpy string '' or just omit the fourth Parameter, the error is gone.

    I thought, Bon would refer to the regex syntax, but maybe he referred to use of regex_replace.

    Sadly, the regular does not what I intend it to do. :-(

    Add comment
    10|10000 characters needed characters exceeded