Access Violation Error

A few of our RapidMart jobs are suddenly returning the following error:

System Exception <ACCESS_VIOLATION> occurred.
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 00000001802FD320 01:00000000002FC320 E:\SAP BusinessObjects\Data Services\bin\acta.dll

They’ve run fine in the past, but they get this error consistently now.

Any ideas?

Thanks,
Craig


craiggsmith (BOB member since 2009-06-01)

memory consumption of these dataflows is high?


Werner Daehn :de: (BOB member since 2004-12-17)

It appears to be due to bulk loading; doing additional testing.


craiggsmith (BOB member since 2009-06-01)

Well, the jobs run fine when I switch them back to conventional loads. Our DBA can’t figure out what’s wrong; we put a trace on the job and didn’t see any particular errors, but I did notice the following last two lines of the trace before it died:

exec sp_cursorfetch 180150003,2,0,1
FETCH API_CURSOR0000000000001A17

I know Oracle uses the sys_dl_cursor for bulk loading, but this is in SQL Server. Does it use a similar thing? Could the error be caused by permissions related to this?

Unfortunately I have 1000 data flows and no idea where bulk loading is used, so turning it off everywhere isn’t the ideal solution.

Thanks.


craiggsmith (BOB member since 2009-06-01)

I believe I have found the problem; in the release notes I found a bug that was fixed in Patch 3:

ADAPT01668176
If the DSConfig.txt option is set to “UseSQLServerBulkCopy = FALSE”, under the al_engine section, and you execute a job with the bulk load option enabled on a SQL Server 2008 target table, the Data Services job fails with an access violation error.

Our setting was actually blank; we changed it to TRUE and things seem to be working. It appears to have gotten changed last week, but we’re still researching that.


craiggsmith (BOB member since 2009-06-01)

We were fine for a week and then upgraded Data Services, and now we’re getting this error again on a couple data flows (that also had the error before). But on the third run it ran successfully. One data flow has a history preserving transform, but the other doesn’t have anything special. Neither have bulk load and the setting is correct in dsconfig anyway, so I guess it’s something else. Any ideas?

Edit: Had another error last night. That data flow had bulk load on.


craiggsmith (BOB member since 2009-06-01)

Have you watched the al_engine.exe process as the job runs? I would bet that it is consuming large amounts of memory.

I don’t think this is a permissions issue. The DBMS are pretty good about sending back a very specific error message when that is the case.


eganjp :us: (BOB member since 2007-09-12)

Upgrading from DS4.0 SP3 Patch 4 to DS4.1 solved this problem for us.


Chrisb31 (BOB member since 2013-06-15)

Thanks, good to know. Unfortunately upgrading is not an option at the moment.

Yes, I think some of these data flows do use a lot of memory. In Linux I can see which process goes with which data flow, but is there a way to see that in Windows? I’ve watched the job some and it hasn’t come close to using all of the server’s memory (64 GB), but could I be hitting the limit for an individual process? Prior to version 4 I know the limit was 2 GB, but what is the limit now?

I did get a response from SAP today, suggesting trying in-memory cache. I will check that tomorrow.


craiggsmith (BOB member since 2009-06-01)

Two of the data flows were doing a sorted input table compare on a table of 40 million rows. I was going to look at other options when I realized that they shouldn’t have that many records and there was a bug in the code. This was fixed and the tables now only have 650k. I also changed the cache to In-Memory and turned off bulk loading and haven’t had any errors since. The other 3 data flows with this error only processed about 100k rows however, so not sure what the real problem was. Unfortunately I can’t do any more testing as we are going live shortly.


craiggsmith (BOB member since 2009-06-01)