HP OpenVMS Systemsask the wizard |
The Question is: Question about QIO where AST aborts and next QIO has "invalid channel" In some high load situations when the ast executes, it aborts with SYSTEM-F-ABORT. The next call to QIO returns with SYSTEM-F-IVCHAN (the channel number is not changed). Since the mailbox affected is the in-mailbox to the routing process in our application, the application will stop working. An attempted workaround is to assign a new channel to the mailbox and perform the QIO again. The system seems to be working OK, exce pt that the AST reports that the IOSB is not set for some signals. (May this imply that the AST starts execution without a message in the mailbox?) The code is about 15 years, have not seen this before. Any hints about the cause of the abort/invalid channel? Why is there problems with the workaroun? The Answer is : Latent problems have been found that are older than 15 years, and this code has clearly seen at least some changes in the last 15 years if just as part of a move over to the OpenVMS Alpha platform. Faster processors, timing differences between uniprocessor and SMP systems, and increased loads are classic triggers for lurking coding problems and asynchronous- and timing-related bugs. Please see topic 1661 for a list of the usual sorts of problems that can lurk within asynchronous source code. Obvious areas to check would be around the $qio call, as well as around all of the related arguments and variables, the variable(s) associated with the channel numbers, as well as the storage allocation involved with the asynchronous activies. Also of interest would be the usual protocol(s) and traffic patterns for the mailboxes -- for instance, a single bi-directional mailbox is often rather harder to correctly code (particularly the turn-around) than are pairs of uni-directional mailboxes. The OpenVMS Wizard prefers to use a unique mailbox to contain messages incoming into each process within the application, thus only one process is reading from the mailbox. One or more processes can be writing into the mailbox(es), of course. Please contact the Compaq Customer Support Center, as access to the source code will likely be required.
|