home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!news.claremont.edu!lexcel!mtinews!mti!adrian
- From: adrian@mti.mti.com (Adrian McCarthy)
- Newsgroups: comp.os.vms
- Subject: Need help with UNASEFC
- Message-ID: <713@mtinews.mti.com>
- Date: 4 Sep 92 18:00:54 GMT
- Sender: news@mtinews.mti.com
- Organization: Micro Technology, Inc., Anaheim, CA
- Lines: 35
- Nntp-Posting-Host: mti
- Originator: adrian@mti
-
- I have a very simple client-server pair of programs with a bizarre bug.
-
- The server reads a big file into memory, listens for queries on a mailbox
- (using SYS$QIOW), and responds by writing back to the client's mailbox.
-
- The client sends queries to the server's mailbox and reads the reponses back
- on its own mailbox (again, using SYS$QIOW).
-
- Everything works great. I modified the server to use SYS$CRMPSC to map the
- big file into memory rather than reading it all in at the beginning. I've
- stepped through with the debugger, and everything works as expected. All
- system service return values come back with SUCCESS.
-
- However, the client (which has not been changed) often chokes and dies when it
- tries to read the response. The QIOW status is UNASEFC (unassociated event
- flag cluster), but the IOSB status is SUCCESS and the transfer count is
- correct. It seems to happen only when the server has to touch one of the
- mapped pages for the first time. If the client is run again immediately with
- the same query, the response comes back just fine.
-
- Neither program relies on event flags since they're using QIO rather than QIOW,
- so they both specify 0 as the event flag number. Thus they aren't even trying
- to use event flags in a common event flag cluster (there are no other
- references to event flags in either program).
-
- Just to add more confusion, when the client program sees the non-success
- status returned from QIOW, it calls exit() (VAX C RTL) with that status.
- The client then dies with an access violation inside exit(). When running
- with the debugger, things get really hosed up, and I get all these messages
- about internal DEBUG coding errors.
-
- Any clues out there? (VMS V5.5, VAX C V3.2)
-
- Thanks,
- Aid. (adrian@lexcel.com)
-