home *** CD-ROM | disk | FTP | other *** search
/ Executor 2.0 / executorv2.0.iso / pc / dos / extra / docs / maillist / text / archive.95 / text2750.txt < prev    next >
Encoding:
Internet Message Format  |  1996-03-31  |  4.0 KB

  1. Received: from sloth.swcp.com (sloth.swcp.com [198.59.115.25]) by nacm.com (8.6.10/8.6.9) with ESMTP id KAA12964 for <executor@nacm.com>; Thu, 6 Jul 1995 10:00:23 -0700
  2. Received: from iclone.UUCP (uucp@localhost) by sloth.swcp.com (8.6.9/8.6.9) with UUCP id LAA10369; Thu, 6 Jul 1995 11:00:22 -0600
  3. Received: from beaut.ardi.com by mailhost  with smtp
  4.     (nextstep Smail3.1.29.0 #11) id m0sTuFc-000YbmC; Thu, 6 Jul 95 10:58 MDT
  5. Received: by beaut.ardi.com (linux Smail3.1.28.1 #5)
  6.     id m0sTuFc-00000BC; Thu, 6 Jul 95 10:58 MDT
  7. Message-Id: <m0sTuFc-00000BC@beaut.ardi.com>
  8. Date: Thu, 6 Jul 95 10:58 MDT
  9. From: ctm@ardi.com (Clifford Thomas Matthews)
  10. To: executor@nacm.com
  11. Cc: Steve Wormley <wormley@demon.mother.com>
  12. Subject: E/L 1.99n memory growth potential workaround
  13. Sender: owner-paper@nacm.com
  14. Precedence: bulk
  15.  
  16. Hi Folks,
  17.  
  18. The workaround's at the end; if you're not curious as to the cause of
  19. the problem and just want the fix, skip to the bottom.
  20.  
  21. Thanks to Steve Wormley, I have a handle on what's causing the memory
  22. growth under Executor/Linux 1.99n.  Under UNIX filesystems, you need a
  23. path (either from / or from your current directory) to look up a file.
  24. On a Mac, you need only a directory number and a filename.  We do a
  25. bunch of magic to be able to give Mac programs that (number,filename)
  26. lookup capability.
  27.  
  28. Internally we have to be able to change a directory number into a
  29. path.  The way we do this is keep track of all directories we ever see
  30. and then remember the name of the directory's parent.  Then we can
  31. recursively climb back up to / to build a complete pathname.
  32.  
  33. HOWEVER, it appears that there are a couple problems.  One, there's no
  34. detection of loops in our recursive call, so if our internal database
  35. is confused, the routine that does the name resolution will repeatedly
  36. call itself forever and ever, eating up memory.  I will fix this later
  37. today.  In addition, when you install Executor over itself, you run
  38. the risk of confusing the database.
  39.  
  40. I *think* this will fix the problem, but the code that potentially
  41. recurses forever will still be there, so please let me know if it gets
  42. triggered again.  Basically you want to truncate *.dir and *.pag in
  43. the Executor library directory (probably /usr/local/lib).  Here's an
  44. example, with comments on lines starting with #:
  45.  
  46. beaut 4.14 su
  47. Password:
  48.  
  49. # You don't necessarily need to be Super-User to do this, but you'll
  50. # want to be if the permissions on those files aren't set right
  51.  
  52. beaut:/# cd /usr/local/lib/executor
  53.  
  54. beaut:/usr/local/lib/executor# ls -l
  55. total 72
  56. drwxrwxrwx   2 ctm      ardi         1024 Jul  4 10:48 Configuration
  57. -rw-rw-rw-   2 ctm      ardi        36864 Jul  5 21:32 DirectoryMap-le.dir
  58. -rw-rw-rw-   2 ctm      ardi        36864 Jul  5 21:32 DirectoryMap-le.pag
  59. -rw-rw-rw-   1 ctm      ardi            0 Nov  9  1994 DirectoryMap.dir
  60. -rw-rw-rw-   1 ctm      ardi            0 Nov  9  1994 DirectoryMap.pag
  61. drwxr-xr-x   6 ctm      ardi         1024 Jul  4 08:05 ExecutorVolume
  62.  
  63. # There are only two files that need to be truncated, but I'll
  64. # truncate each one for illustrative purposes
  65.  
  66. beaut:/usr/local/lib/executor# cat /dev/null > DirectoryMap-le.dir
  67. beaut:/usr/local/lib/executor# cat /dev/null > DirectoryMap-le.pag 
  68. beaut:/usr/local/lib/executor# cat /dev/null > DirectoryMap.dir 
  69. beaut:/usr/local/lib/executor# cat /dev/null > DirectoryMap.pag 
  70.  
  71. # done
  72. # alternatively you could have used
  73. # for f in *.dir *.pag; do > $f; done
  74.  
  75. beaut:/usr/local/lib/executor# chmod a=rw *.dir *.pag
  76.  
  77. # I really didn't need to reset the permissions here, but it
  78. # is important that these files are readable and writable by any
  79. # potential Executor user
  80.  
  81. If there is anyone who continues to have problems after doing this,
  82. please let us know.
  83.  
  84. Because of E/D 1.99n's inability to run under OS/2 and this bug, We'll
  85. continue to collect 1.99n bug reports and may release a 1.99o without
  86. any new functionality but with these (and perhaps other) showstoppers
  87. fixed.
  88.  
  89.     --Cliff
  90.     ctm@ardi.com
  91.  
  92.  
  93.