- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: Access violation when running a detached proce...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2008 07:08 AM
03-20-2008 07:08 AM
We have various programs that we run as detached processes. The programs are written in C.
We are now migrating to OpenVMS v8.3-1H1 on HP Integrity with C v7.3-18.
On the Alpha we start them without the DCL environment.
On the Integrity when we start the detached processes without the DCL environment, we get an access violation and the program terminates. The dump file is attached.
If we start them with in the DCL environment using LOGINOUT.EXE the process runs correctly.
Any input on what maybe causing this would be greatly appreciated.
Thanks
Andrew
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2008 07:26 AM
03-20-2008 07:26 AM
Re: Access violation when running a detached process
In your program you apparently call the C routine PUTENV. This takes a string argument. Is the CHAR array for that string defined as STATIC? If not you could get an access violation later (after the routine that calls PUTENV exits).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2008 07:45 AM
03-20-2008 07:45 AM
Re: Access violation when running a detached process
consider to create a process dump (use $ RUN/DET/DUMP) and try to figure out what's happening from the dump.
Look at your code (probably DBCMCU) and try to figure out what it's doing. If you think everything is o.k., consider to hand the dump to either Oracle or HP ;-)
The code may just assume that a CLI is available, although I can't see something like this to directly happen in putenv or get_environ_offset. But these routines will traverse virtual memory in the process, which could have been corrupted.
Volker.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2008 07:46 AM
03-20-2008 07:46 AM
SolutionIf you have DECwindows around, SET DISPLAY or such to create a WSA device, and pass this in as SYS$INPUT, SYS$OUTPUT and SYS$ERROR on the $creprc call, or on the RUN /DETACH.
(There's a "back-door" in LOGINOUT here, too, where passing a WSA device as SYS$ERROR sets up DECW$DISPLAY for you.)
You can also use DBG$INPUT and DBG$OUTPUT logical names (in a logical name table visible to the detached process) and aim those logical names at an unallocated terminal. (In the absence of an unallocated serial terminal, I've used CREATE /TERMINAL or the underlying X calls DwtDECtermPort or DECW$CREATE_DECTERM to create a DECterm terminal using DECwindows, and to then pass that in via these logical names.)
A common error that can arise here involves process quotas or PQL minimum system parameter settings, as the memory quotas need to be circa 2x to 3x of those of Alpha.
Here, I see slzsetevar is calling putenv, and putenv is tipping over. This could be a calling error, or it could also be a heap corruption. (putenv is commonly used, and tends not to have errors, so this is probably either an error in the calling code, or some sort of a run-time corruption that is tripping putenv.)
Coincidently, I posted up some information on debugging an access violation (ACCVIO) signal just yesterday:
http://64.223.189.234/node/800
Stephen Hoffman
HoffmanLabs LLC
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2008 07:53 AM
03-20-2008 07:53 AM
Re: Access violation when running a detached process
I'll assume you are not trying to create a symbol or logical name here, as lib$set_symbol and lib$set_logical would be better choices. And the former expects a CLI around.
Some tips on debugging C code weirdness, and an intro to heap errors (and pointers to tools):
http://64.223.189.234/node/401