home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / os / vms / 14618 < prev    next >
Encoding:
Internet Message Format  |  1992-09-04  |  2.1 KB

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