home *** CD-ROM | disk | FTP | other *** search
/ Executor 2.0 / executorv2.0.iso / pc / linux / extra / docs / maillist / text / archive.95 / text1237.txt < prev    next >
Encoding:
Text File  |  1996-04-02  |  3.1 KB  |  78 lines

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