home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / os / vms / 20651 < prev    next >
Encoding:
Text File  |  1993-01-09  |  5.9 KB  |  101 lines

  1. Path: sparky!uunet!elroy.jpl.nasa.gov!news.claremont.edu!nntp-server.caltech.edu!SOL1.GPS.CALTECH.EDU!CARL
  2. From: carl@SOL1.GPS.CALTECH.EDU (Carl J Lydick)
  3. Newsgroups: comp.os.vms
  4. Subject: Re: Question about RMS and MSCP-pair
  5. Date: 9 Jan 1993 11:38:21 GMT
  6. Organization: HST Wide Field/Planetary Camera
  7. Lines: 87
  8. Distribution: world
  9. Message-ID: <1imdfdINNg7a@gap.caltech.edu>
  10. References: <1993Jan4.115621.29717@news.th-darmstadt.de>
  11. Reply-To: carl@SOL1.GPS.CALTECH.EDU
  12. NNTP-Posting-Host: sol1.gps.caltech.edu
  13.  
  14. In article <1993Jan4.115621.29717@news.th-darmstadt.de>, sysgaertner@cygnus.frm.maschinenbau.th-darmstadt.de (M. Gaertner, FRM, TH Darmstadt, Germany) writes:
  15. >Hi there,
  16. >happy new year!!!
  17. >Now to my question. I discovered some oddity with RMS and MSCP-served
  18. >disk, at least I think so.
  19. >I understand that MSCP-served disks (aka RQDX3) may do bad-block-revectoring
  20. >on the attached disk. I also understand that, when the original block
  21. >showes unrecoverable READ-errors, the "forced error flag" on the copied
  22. >block will be set.
  23. >What I don't understand is why the RMS then refuses to read the file 
  24. >where the forced error-block is in. It always returns the (correct) 
  25. >error (xxx, forced error flag set). So why does the revectoring take 
  26. >place? I don't care if the file is unreadable because of read-errors or 
  27. >forced errors. Or asked different, why isn't RMS showing the file as it 
  28. >is with a warning about the damaged block?
  29. >Can anybody give an explanation to me?
  30. >Oh, I know that revectoring bad blocks on the controller-level has it's 
  31. >advantages and I like the concept with the forced error flag BUT I don't 
  32. >like RMS's handling of these blocks.
  33.  
  34. (Bet everyone's expecting a flame here;  sorry to disappoint you).
  35.  
  36. OK, when a bad block is revectored on a READ operation, it's because the error
  37. correcting code built in to the system couldn't handle the problem.  This means
  38. that there's no reason to believe that the data in the new block are in any way
  39. similar to the data in the original block.  So the blocked in question is
  40. flagged with a forced error (in my not-so-humble opinion, it should've been
  41. called a "software error," but that would cause a whole new set of
  42. misunderstandings).
  43.  
  44. OK.  So here you are with a file containing a block of what's almost certainly
  45. gibberish.  What do you do about it?  Well, if you're a fairly low-level I/O
  46. routine, you return the data in the block, BUT YOU TELL THE CALLING ROUTINE
  47. THAT YOU'VE PROBABLY JUST HANDED IT GIBBERISH.  Now, if you're a high level
  48. routine and have been handed gibberish, then unless you're intended
  49. specifically to handle such gibberish, your only reasonable alternative is to
  50. say "I quit!"  That's what most VMS utilities do (BACKUP being the notable
  51. exception).  Do you, as a user, *REALLY* want to, e.g., COPY a corrupted file?
  52.  
  53. Now, why does RMS "refuse to read the file"?  Well, let's take the canonical VMS
  54. file type:  Variable length records with implied carriage control.  We had a
  55. beginning-of-record going into the bad block.  The next record is supposed to
  56. start with a byte count.  But the block is gibberish.  Can we trust this byte
  57. count for the next record?  *_NO_*!!!!!  Can we ever be confident that we'll
  58. find the actual beginning of any subsequent record?  NO!  Is *ANY* data we
  59. might return from the rest of the file to be trusted?  (all together now)  NO!
  60. What can we do?  We can refuse to help the user shoot himself in the foot.
  61.  
  62. Now, you, as a user, can open the original file in block mode and copy it to
  63. another file (BACKUP is a simple way to do this, if you don't want to write
  64. your own code), and you can then try to decipher the result.  But VMS isn't
  65. going to let you do this without making it abundantly clear that you're doing
  66. something quite risky.
  67.  
  68. In short, the behavior of RMS in this case is to prevent someone who's totally
  69. clueless about computers from shooting himself in the foot.  You *CAN*
  70. circumvent this, but you've got to go out of your way to do so.
  71.  
  72. Hope this helps.  Btw, VAX/VMS has *MANY* such safeguards built in.  That's one
  73. of the main reasons it's so much slower than many other platforms/systems.  A
  74. few months ago I had a DECStation go south on me.  How did I know?  Well, one
  75. of the users started getting anomalous results out of one of his programs.  He
  76. eventually tracked it down to the fact that FORTRAN code of the form:
  77.     X = 97
  78. resulted in X being assigned a value of 532.0 (numbers made up on the spot here
  79. for illustrative purposes;  the basic point that a convert from long to float
  80. was royally screwed up is, however, correct).  Now, what did the DECstation do
  81. when that happened?  Why, it just went merrily on its way (and by the way, the
  82. system tests available from the console didn't catch this;  we sent the machine
  83. in for repair, and it came back, having "passed diagnostics" still suffering
  84. from the same problem).  What would a VAX have done?  It would've generated a
  85. machine check and dumped you back to the DCL level (unless, of course, the
  86. conversion had been attempted in kernel mode [I can't, however, think of a good
  87. reason why that would ever happen], in which case the system would've crashed).
  88. Now, the microcode required to permit machine checks slows things down
  89. considerably.  After all, after every operation, the system has to perform some
  90. sort of sanity check.  Me, I'd rather get the CORRECT result in twice the time
  91. it takes to get the spurious result.  A lot of people out there, however, seem
  92. to be of the opinion that computers are infallible.
  93. --------------------------------------------------------------------------------
  94. Carl J Lydick | INTERnet: CARL@SOL1.GPS.CALTECH.EDU | NSI/HEPnet: SOL1::CARL
  95.  
  96. Disclaimer:  Hey, I understand VAXen and VMS.  That's what I get paid for.  My
  97. understanding of astronomy is purely at the amateur level (or below).  So
  98. unless what I'm saying is directly related to VAX/VMS, don't hold me or my
  99. organization responsible for it.  If it IS related to VAX/VMS, you can try to
  100. hold me responsible for it, but my organization had nothing to do with it.
  101.