home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / unix / wizards / 4826 < prev    next >
Encoding:
Text File  |  1992-11-21  |  8.3 KB  |  163 lines

  1. Newsgroups: comp.unix.wizards
  2. Path: sparky!uunet!spool.mu.edu!uwm.edu!rpi!batcomputer!cornell!uw-beaver!newsfeed.rice.edu!exlogcorp!mcdowell
  3. From: mcdowell@exlogcorp.exlog.com (Steve McDowell)
  4. Subject: Re: Changing the owner of a process
  5. Message-ID: <1992Nov21.173926.26419@exlog.com>
  6. Keywords: process ownership
  7. Sender: mcdowell@exlog.com (Steve McDowell)
  8. Organization: EXLOG, Inc.
  9. References: <1992Nov21.053022.17380@ra.msstate.edu>
  10. Date: Sat, 21 Nov 92 17:39:26 GMT
  11. Lines: 150
  12.  
  13. In message <1992Nov21.053022.17380@ra.msstate.edu>fwp@CC.MsState.Edu (Frank Peters) writes:
  14. >
  15. > If you had posted "wouldn't it work if you did foo?" or "why couldn't
  16. > you just do foo?" or "I think it would probably be better to do foo." I
  17. > suspect you would have gotten a very different response.  But you
  18. > didn't.  You just told him why what he was doing was wrong.  Contained
  19.  
  20. You're absolutely right, of course. One of the problems with USENET is
  21. it allows immediate train-of-thought responses; that's exactly what 
  22. I gave in my original post. My tone was wrong, and for that I apologize.
  23.  
  24. One thing, though, that I want to get straight up front: I was not 
  25. leveling a personal attack on Chris Torek. The tone of your article
  26. suggests that I was and that just isn't right. I, like most in the 
  27. community, very much appreciate the work that Chris and people like Chris 
  28. do. We need more like him.
  29.  
  30. > the systems there...as more or less an illustration of the fact that it
  31. > is dangerous to assume that you can just twiddle with a kernel
  32. > datastructure at will.  Kernel data structures are where the operating
  33. > system stores its view of the world.  Twiddling with those structures
  34. > behind its back is likely to make the system psychotic if you aren't
  35. > careful.
  36.  
  37. Of course it's dangerous to needlessly twiddle kernel data structures.
  38. It should also be a facet of the operating system to recover from errors
  39. *THAT IT CAN RECOVER FROM*. Disable interrupts for a while and recompute
  40. what the consistancies should be then keep going. 
  41.  
  42. >: In the real-world, in a critical application, I'd much rather have a 
  43. >: syslog-and-reset than a panic that's going to have to be called in to a 
  44. >: support group while the dump sits cluttering up somebody's dasd. If there's
  45. >: a situation that can be recovered from, then recover. I really don't see
  46. >: how you can argue against this.
  47. >
  48. > Hmmm...I question your reasoning.  You seem to be operationg under the
  49. > assumption that the operating system should just know that nothing
  50. > really bad is wrong.
  51.  
  52. Question away, but I didn't say (and I didn't mean to imply) that the
  53. operating system shouldn't know that something is wrong. What I said is
  54. that the operating system, once it detects something is wrong, should
  55. attempt to recover before simply shutting down. Tell the world about it
  56. when it detects a problem, even dump enough state to attempt to trace
  57. back the error. But build in the functionality to recompute "consistancy". 
  58. If that fails, then panic. 
  59.  
  60. > In the real world such a gross inconsistency in a kernel data structure
  61. > is probably either (a) a sign of a MAJOR operating system bug or (b) a
  62. > sign of a MAJOR hardware fault or (c) a sign of a very subtle security
  63. > breach (remember, we are talking about changing the ownership of
  64. > processes).  In any of these situations it is very likely that just
  65. > adjusting the OS' view of reality and continuing on risks problems
  66. > significantly worse than a bit of downtime.
  67.  
  68. Or a minor hardware fault, i.e. a flakey DRAM chip that only fails when
  69. the back cover is off the machine. Or a flakey device driver that jumps 
  70. out of bounds of an array only when the the wall power dips below 58Hz
  71. on the attached peripheral.  If you can recover and go on, then do. 
  72. I'm not saying you shouldn't save enough state to track the error or 
  73. panic() with some error conditions.
  74.  
  75. > You have critical applications in an environment in which system uptime
  76. > is more important than system integrity or system security?  You want
  77. > the system to continue to process your data in the face of what (to
  78. > the system) looks like a major system consistency failure?
  79.  
  80. Depends on what you consider "major". Some things are simply not 
  81. recoverable from, some things shouldn't be, and some things are. 
  82.  
  83. My orignal post was only addressing a situation where the kernel 
  84. had fewer processes in a queue than it thought it had. Yes, something's
  85. wrong; but why panic()? That one is easily fixed by a recount and 
  86. easily identifiable because another queue is going to have more 
  87. processes than the kernel thought it should have. Leave an audit trail.
  88. If the process can't be found on anybody's queue, then panic().
  89.  
  90. > I can certainly imagine such critical applications but I don't think
  91. > they are common...and they probably require specially written fault
  92. > tolerant systems anyway.
  93.  
  94. To some people doing a 10-hour payroll run would be a critical application.
  95. Not all that uncommon. To others an unattended backup would be a 
  96. critical application, again not all that uncommon. Critical doesn't
  97. necessarily mean life-threatening. My stock broker's trading computers 
  98. run a very critical application :)
  99.  
  100. Some degree of fault tolerance should be built into the system. The
  101. system shouldn't panic because it couldn't malloc() an mbuf. It should
  102. try to recover. Then it should give the operator some options. Then
  103. it should panic(). 
  104.  
  105. I'm not proposing a specific design here, just a philosophy. There are
  106. very few reasons that a system should panic, and UNIX seems to know
  107. them all. 
  108.  
  109. >: Of course, for your purposes developing an operating system is a means
  110. >: unto itself. You don't have to worry about irrelevant things like 
  111. >: "customers" and "applications". I wish I didn't. 
  112. >
  113. > Basically irrelevant.  He pointed out the problem that the suggested 
  114. > solution would cause on one implementation.  You didn't argue that 
  115. > his solution was inappropriate for your situation.  You contended
  116. > that it was wrong in absolute terms.
  117.  
  118. You mis-read what I said. I said that in the lab you should be able
  119. to do what you want and if panic's are the way to track an error down,
  120. then by all means do it. If bsd4.4 is never going to leave the lab 
  121. then all this babble is completely irrelevant. If it's going to leave
  122. the lab, then it isn't irrelevant at all.
  123.  
  124. If in the deliverable product you can catch an error and correct it
  125. without destroying anything, then that should be done. Or define a 
  126. configuration option and let the operator decide whether or not he wants 
  127. panic's or attempted recovery. 
  128.  
  129. >: I hope that vendors do replace panics where they can. The problem becomes that
  130. >: commericial vendors don't always take the time to get it right. Too many vendors
  131. >: simply port the code they get from USL or CSRG or CMU to get compatable 
  132. >: functionality; that makes it simple to integrate new releases and keeps the 
  133. >: lead time to market short. That's not the research community's problem, that's
  134. >: a problem for everyone else. 
  135. >
  136. >That's hardly Chris' fault.  He designs systems for his purposes.
  137. >Arguing that he shouldn't design systems to meet his needs because
  138. >someone is going to then take that system and use it to meet other
  139. >needs without appropriate modifications is just a bit selfish.
  140.  
  141. Again, you're reading this as a personal attack and it simply isn't. Read the
  142. last sentence that you quoted of me: "that's not the research community's 
  143. problem". And it isn't. I said it isn't. It's the commerical world's fault. 
  144. That's not a slam of Chris Torek or you or Mike Karels or anybody else. That's a 
  145. slam of some of the commercial implementations that are out there. 
  146.  
  147. Chris should build systems that meet his research needs, no question. Before
  148. it hits the general user population, however far removed that is from Chris
  149. Torek's responsibility, it should have some fault tolerance built into it. 
  150. That is my only point. 
  151.  
  152. And, please, I did not intend to bring personalities into this. It takes
  153. focus away from the issues. If I'm wrong in my ideas, then make it be because 
  154. what I suggest isn't feasable. Don't say that I'm wrong because I do research 
  155. for a commercial orgainization and not for academia. And please don't say that 
  156. I'm wrong because I don't agree with everything that comes out of Berkeley. 
  157.  
  158. -- 
  159. Steve McDowell             . . . . o o o o o         Opinions are 
  160. Exlog, Inc.                      _____      o         mine, not my 
  161. mcdowell@exlog.com      _____====  ]OO|_n_n__][.        employers..
  162.                [_________]_|__|________)<   
  163.