home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / windows / x / 19077 < prev    next >
Encoding:
Text File  |  1992-11-12  |  4.5 KB  |  107 lines

  1. Newsgroups: comp.windows.x
  2. Path: sparky!uunet!utcsri!newsflash.concordia.ca!malowany
  3. From: malowany@cs.concordia.ca (Stephen Malowany)
  4. Subject: fs hates me!!! (or I found a bug)
  5. Message-ID: <BxMp3D.KsI@newsflash.concordia.ca>
  6. Keywords: font server, fs, bug
  7. Sender: usenet@newsflash.concordia.ca (USENET News System)
  8. Nntp-Posting-Host: stevem.cs.concordia.ca
  9. Organization: Computer Science, Concordia University, Montreal, Quebec
  10. Date: Fri, 13 Nov 1992 00:23:36 GMT
  11. Lines: 94
  12.  
  13. I'm trying to use fs to serve fonts to bunch of Sun3/50 Xkernel Xterminals
  14. with limited success. First some background:
  15.  
  16.       fs: X11R5 pl.17, SPARC, SunOS 4.1.1, bundled cc.
  17. XsunMono: X11R5 pl.17, Sun3,  SunOS 4.1.1, gcc2.2.2
  18.  
  19. fs runs on SS2's serving about 15-20 X terminals each. First I tried the
  20. "cloning" method: port = 7000, clone-self = on, client-limit = 10.
  21. Connecting to fs using "XsunMono -fp <fonthost>:7000" on the sun3's was
  22. not very robust. Often, I'd have to reboot the X terminals 2 or 3+ times
  23. to get Xsun up and running (dies with "could not set default font: fixed").
  24. After a few days of random X terminal crashes, there ends up being around
  25. 6 cloned instances of fs running, whereas I only want/need 2 or 3. Every
  26. now and then the parent fs process would die, hence the next X terminal
  27. to reboot couldn't get a connection until all existing fs processes were
  28. killed and a new parent started. On two occasions I cought the parent fs
  29. stuck in a loop burning up all the CPU. "trace -p <fspid>" showed it
  30. looping over and over again through
  31.  
  32. read (8, 0x94d90, 4096) = -1 EAGAIN (No more processes)
  33. gettimeofday (0xf7fffd80, 0) = 0
  34. select (128, 0x36248, 0, 0, 0xf7fffe00) = 6
  35. gettimeofday (0xf7fffd80, 0) = 0
  36.  
  37. (there were plenty of processes left, BTW). The second time it was
  38. stuck looping through
  39.  
  40. select (128, 0x36248, 0, 0, 0xf7fffe00) = 1
  41. gettimeofday (0xf7fffd80, 0) = 0
  42. gettimeofday (0xf7fffd80, 0) = 0
  43.  
  44. So I figure I'll try something different. This time I start 3 fs's; one
  45. each on ports 7000, 7001, 7002, with "clone-self = off". The config file
  46. for port 7000 has "alternate-servers = cyclops:7001,cyclops:7002". This
  47. works for a half-hour or so (load dependant) until suddenly no amount
  48. of rebooting the 3/50's can get a connection. Back to trace -p again.
  49. After a little digging, I think I have identified the bug.
  50.  
  51. A healthy fs:7000 accepts up to the specified 10 connections, at which
  52. time it will pass off the connection attempt to the alternate servers
  53. like so
  54. ----------------------------------------
  55. gettimeofday (0xf7fffcc0, 0) = 0
  56. select (128, 0x36248, 0, 0, 0xf7fffd40) = 1
  57. gettimeofday (0xf7fffc48, 0) = 0
  58. accept (3, 0, 0) = 14
  59. getpeername (14, 0xf7fffcb4, 0xf7fffcc4) = 0
  60. setsockopt (14, 6, 1, 0xf7fffcb0, 4) = 0
  61. fcntl (14, 04, 0x4000) = 0
  62. select (15, 0xf7fffc30, 0, 0, 0xf7fffc40) = 1
  63. read (14, "B", 1) = 1
  64. write (14, "".., 12) = 12
  65. write (14, "".., 2) = 2
  66. write (14, "cyclops:7001", 12) = 12
  67. write (14, "".., 2) = 2
  68. write (14, "".., 2) = 2
  69. write (14, "cyclops:7002", 12) = 12
  70. write (14, "".., 2) = 2
  71. close (14) = 0
  72. gettimeofday (0xf7fffcc0, 0) = 0
  73. ----------------------------------------
  74. Note the write of "cyclops:7001" and "cyclops:7002". But, it's
  75. not long before the fs gets "sick" and starts responding like so
  76. ----------------------------------------
  77. gettimeofday (0xf7fffcc0, 0) = 0
  78. select (128, 0x36248, 0, 0, 0xf7fffd40) = 1
  79. gettimeofday (0xf7fffc48, 0) = 0
  80. accept (3, 0, 0) = 14
  81. getpeername (14, 0xf7fffcb4, 0xf7fffcc4) = 0
  82. setsockopt (14, 6, 1, 0xf7fffcb0, 4) = 0
  83. fcntl (14, 04, 0x4000) = 0
  84. select (15, 0xf7fffc30, 0, 0, 0xf7fffc40) = 1
  85. read (14, "B", 1) = 1
  86. write (14, "".., 12) = 12
  87. write (14, "".., 2) = 2
  88. write (14, "????\0\0\0\2", 8) = -1 EFAULT (Bad address)
  89. write (14, "".., 2) = 2
  90. write (14, "".., 2) = 2
  91. write (14, "", 0) = 0
  92. write (14, "".., 2) = 2
  93. close (14) = 0
  94. gettimeofday (0xf7fffcc0, 0) = 0
  95. ----------------------------------------
  96. Note the "????\0\0\0\2" where it should be writing "cyclops:7001",
  97. and "" where it should be writing "cyclops:7002". So how 'bout it,
  98. is this a legit bug? Anyone know the fs code well enough to know
  99. how and where to fix this?
  100.  
  101. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  102. Steve Malowany                                               Systems Analyst
  103. Centre for Pattern Recogn. & Machine Intell.  malowany@cenparmi.concordia.ca
  104. Department of Computer Science                      malowany@cs.concordia.ca
  105. Concordia University                                Montreal, Quebec, Canada
  106. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  107.