lauri@MITRE-BEDFORD.ARPA.UUCP (03/04/87)
We are running a program which SPAWNS commands frequently. Most of the time, these commands work properly, but every once in a while, the LIB$SPAWN will fail. The return status for LIB$SPAWN is SS$_NOIOCHAN. I realize that LIB$SPAWN needs to assign an I/O channel to create a mailbox but I can't figure out why it can't find one. I've checked for files which have been left open earlier in the program but no luck. After I get this error, I open an existing file successfully, am unable to create an output file, and from then on, cannot even open any existing files. Has anyone ever encountered any problems like this? Any suggestions? Thanks.
LEICHTER-JERRY@YALE.ARPA.UUCP (03/05/87)
We are running a program which SPAWNS commands frequently. Most of the time, these commands work properly, but every once in a while, the LIB$SPAWN will fail. The return status for LIB$SPAWN is SS$_NOIOCHAN. I realize that LIB$SPAWN needs to assign an I/O channel to create a mailbox but I can't figure out why it can't find one. I've checked for files which have been left open earlier in the program but no luck.... After I get this error, I open an existing file successfully, am unable to create an output file, and from then on, cannot even open any existing files. What version of VMS are you running? (I don't recall any particular bug fixes for any problem related to this one, but that's pretty fundamental information for tracking things down.) At the time of the SPAWN that fails, have other SPAWN's finished already, or are they still out there executing? Every still-active SPAWN'ed process will still be costing you an I/O channel.... In addition, note that the open file quota is pooled among all the processes in a job. Hence, if you have a still- active subprocess that has many files open, it can prevent you from opening any more. Unfortunately, it's pretty easy to write programs that "lose" channels this way, and pretty hard to figure out where they are going. If all else fails, ANALYZE/SYSTEM lets you display all the channels in use by a process. Of course, that requires mucho privilege (CMKRNL, at least). A "tame" version of ANALYZE/SYSTEM - which would only let you look at processes you otherwise have access rights to - would be nice to have.... -- Jerry -------
lauri@MITRE-BEDFORD.ARPA.UUCP (03/05/87)
> We are running a program which SPAWNS commands frequently. Most of the > time, these commands work properly, but every once in a while, the > LIB$SPAWN will fail. The return status for LIB$SPAWN is SS$_NOIOCHAN. I > realize that LIB$SPAWN needs to assign an I/O channel to create a mailbox > but I can't figure out why it can't find one. I've checked for files > which have been left open earlier in the program but no luck.... After I > get this error, I open an existing file successfully, am unable to create > an output file, and from then on, cannot even open any existing files. Thanks for your replies to my problem spawning. Using SDA to examine the problematic process on the running system was very helpful in pinpointing where and how channels were left assigned in the program. It turned out that a program called FILE_ORG which we got off the network last summer was the culprit, so I replaced it and all works fine now. Thanks again.