Why are error messages so bad...
By user12625760 on Sep 21, 2004
Got an instant message from a collegue asking if I could help him work out why he could not print using the lp command from Cups when the input was standard input. Odd for two reasons, first this colleague used to support printing, second cups normally just works. (There is a third reason it is odd and that is that it was an instant message, but since I now am blogging as well I feel it is time to confess that I do instant messaging, even if email was more fun when you had to address things UUCP style).
So the error he is getting is:
/opt/sfw/cups/bin/lp < /etc/passwd lp: stdin is empty, so no job has been sent.
But "/opt/sfw/cups/bin/lp /etc/passwd" works just fine. So I ask him to truss it and search for "\^read(0,", which since he was an engineer needed no explanation and send me the preceding 5 lines the line itself and the following 5 lines. This got me this:
sigprocmask(SIG_UNBLOCK, 0xFFBFC0B0, 0xFFBFC0A0) = 0 sigaction(SIGTERM, 0xFFBFBFE0, 0xFFBFC080) = 0 sigprocmask(SIG_UNBLOCK, 0xFFBFC0B0, 0xFFBFC0A0) = 0 getuid() = 14644  open("/var/tmp/414feab41670a", O_RDWR|O_CREAT|O_EXCL, 0600) = 4 read(0, " S u n M i c r o s y s".., 8192) = 49 write(4, " S u n M i c r o s y s".., 49) Err#28 ENOSPC read(0, 0xFFBFC130, 8192) = 0 lseek(4, 0, SEEK_CUR) = 0 close(4) = 0 fstat64(2, 0xFFBFBE10) = 0 write(2, " l p : s t d i n i s".., 45) = 45
O.k. So no prizes for seeing the problem here, but why oh why did lp not just say "/var/tmp: No space left on device"? Now I'm off to file a bug report, thus putting on hold what I had planned to do.