Operating System - OpenVMS
1748058 Members
5037 Online
108758 Solutions
New Discussion юеВ

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00

 
SOLVED
Go to solution
Clyde Grimes
New Member

SYSTEM-F-ACCVIO, access violation, reason mask=00

We keep getting the following ACCVIO.
1) What is causing these?
2) What manual describes how to interpret a ACCVIO dump?

%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=000000000056E000, PC=FFFFFFFF809A8168, PS=0000001B
%TRACE-F-TRACEBACK, symbolic stack dump follows
image module routine line rel PC abs PC
0 0000000000000000 FFFFFFFF809A8168
DEC$COBRTL 0 0000000000029A10 000000007C375A10
DEC$COBRTL 0 0000000000027424 000000007C373424
CJ6100 CJ6100 CJ6100 12409 0000000000001E48 0000000000251E48
CJ6100 0 0000000000264220 0000000000274220
PTHREAD$RTL 0 000000000003EE28 000000007BCEAE28
PTHREAD$RTL 0 000000000001A314 000000007BCC6314
0 FFFFFFFF80267E94 FFFFFFFF80267E94
9 REPLIES 9
Volker Halle
Honored Contributor
Solution

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00

Clyde,

the ACCVIO is caused by executing an instruction in system space PC=809A8168 and trying to access (read) address 56E000 in P0 space of the current process. This access failed and caused the system to signal an ACCVIO error.

$ HELP/MESSAGE ACCVIO provides some explanations on this type of error and the reason mask bits.

To further troubleshoot this problem, try the following:

$ ANAL/SYS
SDA> READ/EXEC/NOLOG
SDA> EXA/INS 809A8168

This examines the 'failing instruction' and also tells you the system routine/module.

Consider to take a process dump, if this happens by using the command SET PROC/DUMP before starting the image in your process. You can analyze the resulting imagename.DMP process dump with ANAL/PROCESS.

The system routine has been called from DEC$COBRTL, which has been called from your appliation program CJ6100 at line 12409. Look at your application source code to maybe get an idea on which operation it's performing in this line and how the 'invalid address' 56E000 may have been passed.

Volker.
Travis Craig
Frequent Advisor

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00

Clyde,

This says your program was trying to read location 56E000 and had an access violation (the address does not exist or cannot be read). I don't remember where I finally found the way to decode the reason mask, but here are my notes on the meanings of the bits, beginning with the low-order bit:

bit 0 = 1 means length violation
bit 1 = 1 means referred to process page table
bit 2 = 0 means read error
bit 2 = 1 means modify (write) error
bit 3 = 1 means vector op. on improperly-aligned vector element
bit 4 = 1 means vector instruction ref. to I/O-space address

The common reason masks are 00, as you had, or 04, meaning an access violation on a write. Notice that the violation address is the first byte in a new page, which is a clue that something read too far.

I assume that DEC$COBRTL is a COBOL run-time library and that CJ6100 is your code. I have no experience with COBOL, so I can't help you further there.

--Travis Craig
My head is cold.
Clyde Grimes
New Member

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00

After adding the /CHECK, we receive the following message. What manual would I use to find an interpretation of this messages?

%SYSTEM-F-DECINV, decimal invalid operand, PC=0000000000298398, PS=0000001B

%TRACE-F-TRACEBACK, symbolic stack dump follows

image module routine line rel PC abs PC

CJ6100 CJ6100 CJ6100 13193 0000000000038398 0000000000298398

CJ6100 0 000000000028A7E0 000000000029A7E0

PTHREAD$RTL 0 000000000003EE28 000000007BCEAE28

PTHREAD$RTL 0 000000000001A314 000000007BCC6314

0 FFFFFFFF80267E94 FFFFFFFF80267E94
Hein van den Heuvel
Honored Contributor

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00


You don't need a manual for this one.

It is all there:

"decimal invalid operand"

bad data (text?) in a cobol pic 9 or comp-3 packed decimal field.

The usage is attempted in program CJ6100 line 13193.

While there, you also want to check out what is happening on the earlier mentioned line 12409, but that could now be a secondary effect. It may or migth not be useful to pretect that line against bad data coming in.

Hein.
Volker Halle
Honored Contributor

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00

Clyde,

HELP is your friend ;-)

The OpenVMS HELP utility contains explanations for most error messages, it's always there and the first place to look:

$ HELP/MESS DECINV

Volker.
Marc Van den Broeck
Trusted Contributor

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00

Clyde,

pay attention, the line number 13193 you get is not the line number in the cobol source file but in the lis file that is created when the source file was compiled (with /lis).
If you dont find the problem, just post a few lines of the code (and declarations of the variables).
You might also compile and run with debug (/debug qualifier) to find out what exactly is going wrong.

Rgds
Marc
Antoniov.
Honored Contributor

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00

Clyde,
welcome to vms forum.

ACCVIO is very difficult to create in cobol program. For my experience, this error is around some call statetement.
Other errors are displayed with specific error message by cobol runtime; see HELP COBOL COMPILER.

Antonio Vigliotti
Antonio Maria Vigliotti
Don Braffitt
New Member

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00

Clyde,

The COBOL documentation is here

http://h71000.www7.hp.com/doc/cobol.html

There are some details here

http://h71000.www7.hp.com/doc/82final/6297/6297pro_018.html#index_x_708

on using /CHECK=DECIMAL to help detect
invalid values in numeric items.

Don Braffitt
project leader, HP COBOL, SORT32, and
Hypersort for OpenVMS and Tru64 UNIX
Clyde Grimes
New Member

Re: SYSTEM-F-ACCVIO, access violation, reason mask=00

The issue is unresolved, but we decided that the code causing the issue will be removed soon anyway, so we decided just to remove the code now instead!

Thanks for your help!