Ergebnis für URL: http://savannah.gnu.org/bugs/?22861
     * [1]Back to Savannah Homepage
     * Not Logged in
     * [2]Login
     * [3]New User
     * This Page
     * [4]Language
     * [5]Clean Reload
     * Search
     * ____________________
       Area to search in [Groups_]
       Search
     * Hosted Projects
     * [6]Hosting requirements
     * [7]Register New Project
     * [8]Full List
     * [9]Contributors Wanted
     * [10]Statistics
     * Site Help
     * [11]User Docs: FAQ
     * [12]User Docs: In Depth Guide
     * [13]Get Support
     * [14]Contact Savannah
     * GNU Project
     * [15]Help GNU
     * [16]All GNU Packages
     * [17]Dev Resources
     * [18]License List
     * [19]GNU Mirrors
     * [20]Support freedom
       Help us protect your freedom and the rights of computer users everywhere by
       becoming a member of the FSF.
       Join Now!
     * Free Software Foundation
     * [21]Coming Events
     * [22]Free Software Directory
     * [23]Cryptographic software legal notice
     * [24]Copyright infringement notification
     * Related Forges
     * [25]Savannah Non-GNU
     * [26]Puszcza

bug The GNU Hurd - Bugs: bug #22861, bogus answer from pflocal to...

   Group
     * [27]Main
          + [28]Main
          + [29]View members
          + [30]Search
     * [31]Homepage
     * [32]Download
     * [33]Support
          + [34]Submit new
          + [35]Browse
          + [36]Reset to open
          + [37]Digest
          + [38]Dependencies
          + [DEL: Export :DEL]
          + [39]Get statistics
          + [40]Search
     * [41]Mailing lists
     * [42]Source code
          + [43]Use CVS
          + [44]Browse CVS repository
          + [45]Browse Web Pages Repository
          +
          + [46]Use Git
          + Browse Git repositories
          + [47]Hurd meta package
          + [48]glibc maintenance
          + [49]GNU Mach
          + [50]Hurd
          + [51]the great next stuff
          + [52]POSIX threading library
          + [53]MIG
          + [54]procfs
          + [55]unionfs
          + [56]Viengoos
          + [57]Web pages
     * [58]Bugs
          + [59]Submit new
          + [60]Browse
          + [61]Reset to open
          + [62]Digest
          + [63]Dependencies
          + [DEL: Export :DEL]
          + [64]Get statistics
          + [65]Search
     * [66]Tasks
          + [DEL: Submit new :DEL]
          + [67]Browse
          + [68]Reset to open
          + [69]Digest
          + [70]Dependencies
          + [DEL: Export :DEL]
          + [71]Get statistics
          + [72]Search
     * [73]Patches
          + [DEL: Submit new :DEL]
          + [74]Browse
          + [75]Reset to open
          + [76]Digest
          + [77]Dependencies
          + [DEL: Export :DEL]
          + [78]Get statistics
          + [79]Search
     * [80]News
          + [81]Browse
          + [82]Atom feed
          + [DEL: Submit :DEL]
          + [DEL: Manage :DEL]



[83]bug #22861: bogus answer from pflocal to io_select SELECT_URG

   Submitter:  None Submit changes and browse items http://_____________
   Submitted:  Sun 06 Apr 2008 11:52:50 PM UTC
   Submit changes and return to this item
   Votes: [84]1 Preview

   Category:  Hurd Servers Severity:  3 - Normal
   Priority:  5 - Normal Item Group:  None
   Status:  None Privacy:  Public
   Assigned to:  None Originator Name:
   Originator Email:  -email is unavailable- Open/Closed:  Open
   Reproducibility:  None Size (loc):  None
   Planned Release:  None Effort:  0.00
   Wiki-like text discussion box:

   * Mandatory Fields

[85]Post a Comment

   Add a New Comment [86]Rich Markup Preview

   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________
   _________________________________________________________________

[87]Discussion

   Reverse comment order
   [88]Sat 16 Jul 2016 01:46:37 PM UTC, comment #4:  (4) Quote

   The t/io_select_timeout patches in glibc complicate the fix.  Now if
   glibc/hurd/hurdselect.c (_hurd_select) is called with a timeout and at least one
   file descriptor, it passes the current time + the timeout to the servers, instead
   of letting __mach_msg time out.  And if each server returns MIG_NO_REPLY to its
   message loop and so never sends a reply, then _hurd_select sleeps until
   interrupted by a signal, regardless of what the timeout was.
   I guess the io_select_timeout implementation in each server could just wait until
   the timeout occurs (at which time it would send an reply with select_type=0) or
   the reply port dies (in which case no reply can be sent, and any related
   resources should be freed).  As an optimization, the server could use a timer
   queue so that the wait does not tie up a thread.
   io_select could be implemented in a similar way except with an infinite timeout,
   or it could be done with MIG_NO_REPLY as originally planned, I think.
   I removed the workaround from ELinks and tried to reproduce the original problem
   but couldn't; it never called select in such a way that the pipe was only in
   exceptfds.  To test any fix here, one should construct a dedicated test program
   instead of relying on ELinks.
   [89]Kalle Olavi Niemitalo 
   [90]Wed 13 Jul 2016 08:09:43 PM UTC, comment #3:  (3) Quote

   MIG_NO_REPLY is defined in gnumach and handled properly by the msg routines, yes.
   It could work indeed, could you give it a try?
   [91]Samuel Thibault 
   Group administrator
   [92]Tue 12 Jul 2016 09:17:17 AM UTC, comment #2:  (2) Quote

   About alternative (c) in the original submission: MIG_NO_REPLY is checked in
   glibc/mach/msgserver.c (__mach_msg_server_timeout), which hurd/libports/ calls.
   That might actually work then.
   [93]Kalle Olavi Niemitalo 
   [94]Sun 02 Nov 2008 05:43:11 PM UTC, comment #1:  (1) Quote

   ELinks 0.12pre2 includes a workaround in set_handlers():
     * Hurd bug 22861: Work around select() falsely reporting exceptions in pipes.

   The workaround slows ELinks down a bit, so it may be reverted after this Hurd bug
   has been fixed.
   [95]Kalle Olavi Niemitalo 
   [96]Sun 06 Apr 2008 11:52:50 PM UTC, original submission:   (0) Quote

   If a program first calls pipe() and then calls select() in such a way that one of
   the pipe file descriptors is in exceptfds but not in readfds nor writefds, the
   select() call returns almost immediately and leaves the pipe in exceptfds, as if
   an exception had occurred there.  This bug completely wrecks the ELinks web
   browser, which uses a pipe for internal communication and ends up closing the
   pipe because it thinks an error has occurred.
   rpctrace shows that _hurd_select in glibc sends an io_select_request (4) to
   pflocal and gets back io_select_reply (0 0), which it considers a "bogus answer":
   if the pipe is not ready for any I/O, then it should not have responded yet.  And
   so, glibc substitutes SELECT_ALL, which includes SELECT_URG.
   Why did pflocal send the bogus answer, then?  When *select_type is initially
   SELECT_URG without other flags, S_io_select in hurd/pflocal/io.c first resets
   *select_type to zero and then calls pipe_pair_select in hurd/libpipe/pipe.c.
   That notices *select_type is neither SELECT_READ nor SELECT_WRITE, and apparently
   assumes it is SELECT_READ | SELECT_WRITE and waits for either condition.  One of
   the conditions is satisfied, but *select_type remains zero, and S_io_select then
   propagates the zero to io_select_response.
   Possible fixes:
   (a) Change _hurd_select in glibc to completely ignore responses that have
   select_type=0.  I.e. change the protocol so that a server can send back
   io_select_reply (0 0) to mean that the requested events cannot ever occur.  This
   would however make the timeout in _hurd_select more complex to implement.
   Currently, _hurd_select simply passes the timeout to Mach when waiting for the
   first response to the io_select_requests it has sent out; after getting the first
   response, it collects any further replies with a zero timeout, and then returns.
   If _hurd_select were changed to ignore the first response in some cases, it would
   have to keep track of how much time it has spent.
   (b) Change pflocal to detect when io_select_request is asking solely for events
   that cannot ever occur, and sleep until the caller closes the reply port.
   Similar changes may be needed in other servers.  The downside is that this would
   needlessly tie up a thread in the server.
   (c) As in (b) but instead of sleeping, discard the right to the reply port
   without sending any response, and return the thread to more productive use.
   However, there seem to be two problems with this.  Firstly, it may be difficult
   to make MIG-generated stubs let the server skip the response.  The Mach 3 Server
   Writer's Guide mentions that the server routine can return MIG_NO_REPLY to to
   this, but I did not find that symbol in the GNU MiG 1.3 sources.  Secondly,
   discarding the reply right might trigger a no-senders notification in the
   client.  It appears though that _hurd_select does not currently request such
   notification.
   This bug was discussed in December 2007 on the debian-hurd and elinks-dev mailing
   lists, under the subject "The Links/Links2/ELinks browsers are unusable on Debian
   GNU/Hurd".
   Anonymous


[97]Attached Files

   (Note: upload size limit is set to 16384 kB, after insertion of the required
   escape characters.)

   Attach Files:


   Comment:
       ____________________________________________________________

   No files currently attached


[98]Dependencies

   Depends on the following items: None found

   Items that depend on this one: None found


[99]Mail Notification Carbon-Copy List

   Carbon-Copy List

     -email is unavailable- added by [100]sthibaul (Posted a comment)

     -email is unavailable- added by [101]kon (Posted a comment)

     -email is unavailable- added by [102]kon


[103]Votes

   There is 1 vote so far. Votes easily highlight which items people would like to
   see resolved in priority, independently of the priority of the item set by
   tracker managers.

   Only logged-in users can vote.


   Please enter the title of [104]George Orwell's famous dystopian book (it's a
   date): ____________________

    Preview Submit changes and browse items Submit changes and return to this item

[105]History

   Follows 1 latest change.
      Date    Changed by Updated Field Previous Value => Replaced by
   2008-11-02  [106]kon   Carbon-Copy               -    Added kon

   [107]Back to the top

   Copyright © 2024 Free Software Foundation, Inc.
   Verbatim copying and distribution of this entire article is permitted in any
   medium, provided this notice is preserved.
   The [108]Levitating, Meditating, Flute-playing Gnu logo is a GNU GPL'ed image
   provided by the Nevrax Design Team.
   [109]Page source code

                                                        Powered by Savane 3.13-4b48.
                                                      [110]Corresponding source code

References

   1. http://savannah.gnu.org/
   2. http://savannah.gnu.org/account/login.php?uri=%2Fbugs%2F%3F22861
   3. http://savannah.gnu.org/account/register.php
   4. http://savannah.gnu.org/i18n.php?lang_uri=%2Fbugs%2F%3F22861
   5. http://savannah.gnu.org/bugs/index.php?reload=1&func=detailitem&item_id=22861
   6. http://savannah.gnu.org/register/requirements.php
   7. http://savannah.gnu.org/register/
   8. http://savannah.gnu.org/search/index.php?type_of_search=soft&words=%%%
   9. http://savannah.gnu.org/people/
  10. http://savannah.gnu.org/stats/
  11. http://savannah.gnu.org/maintenance/FrontPage/
  12. http://savannah.gnu.org/maintenance/back-page/
  13. http://savannah.gnu.org/support/?group=administration
  14. http://savannah.gnu.org/contact.php
  15. http://www.gnu.org/help/help.html
  16. http://www.gnu.org/software/software.html
  17. http://www.gnu.org/software/devel.html
  18. http://www.gnu.org/licenses/license-list.html
  19. http://www.gnu.org/prep/ftp.html
  20. http://www.fsf.org/associate/support_freedom/join_fsf?referrer=2442
  21. http://www.fsf.org/events/
  22. http://www.fsf.org/directory/
  23. http://savannah.gnu.org/maintenance/SavannahCryptographicRestrictions
  24. http://www.fsf.org/about/dmca-notice
  25. http://savannah.nongnu.org/
  26. http://puszcza.gnu.org.ua/
  27. http://savannah.gnu.org/projects/hurd/
  28. http://savannah.gnu.org/projects/hurd/
  29. http://savannah.gnu.org/project/memberlist.php?group=hurd
  30. http://savannah.gnu.org/project/search.php?group=hurd
  31. http://www.gnu.org/software/hurd/
  32. http://savannah.gnu.org/files/?group=hurd
  33. http://savannah.gnu.org/support/?group=hurd
  34. http://savannah.gnu.org/support/?group=hurd&func=additem
  35. http://savannah.gnu.org/support/?group=hurd
  36. http://savannah.gnu.org/support/?group=hurd&func=browse&set=open
  37. http://savannah.gnu.org/support/?group=hurd&func=digest
  38. http://savannah.gnu.org/support/dependencies.php?group=hurd
  39. http://savannah.gnu.org/support/reporting.php?group=hurd
  40. http://savannah.gnu.org/support/?group=hurd&func=search
  41. http://savannah.gnu.org/mail/?group=hurd
  42. http://savannah.gnu.org/projects/hurd/#devtools
  43. http://savannah.gnu.org/cvs/?group=hurd
  44. http://cvs.savannah.gnu.org/viewvc/?root=hurd
  45. http://web.cvs.savannah.gnu.org/viewvc/?root=hurd
  46. http://savannah.gnu.org/git/?group=hurd
  47. http://git.savannah.gnu.org/cgit/hurd.git
  48. http://git.savannah.gnu.org/cgit/hurd/glibc.git
  49. http://git.savannah.gnu.org/cgit/hurd/gnumach.git
  50. http://git.savannah.gnu.org/cgit/hurd/hurd.git
  51. http://git.savannah.gnu.org/cgit/hurd/incubator.git
  52. http://git.savannah.gnu.org/cgit/hurd/libpthread.git
  53. http://git.savannah.gnu.org/cgit/hurd/mig.git
  54. http://git.savannah.gnu.org/cgit/hurd/procfs.git
  55. http://git.savannah.gnu.org/cgit/hurd/unionfs.git
  56. http://git.savannah.gnu.org/cgit/hurd/viengoos.git
  57. http://git.savannah.gnu.org/cgit/hurd/web.git
  58. http://savannah.gnu.org/bugs/?group=hurd
  59. http://savannah.gnu.org/bugs/?group=hurd&func=additem
  60. http://savannah.gnu.org/bugs/?group=hurd
  61. http://savannah.gnu.org/bugs/?group=hurd&func=browse&set=open
  62. http://savannah.gnu.org/bugs/?group=hurd&func=digest
  63. http://savannah.gnu.org/bugs/dependencies.php?group=hurd
  64. http://savannah.gnu.org/bugs/reporting.php?group=hurd
  65. http://savannah.gnu.org/bugs/?group=hurd&func=search
  66. http://savannah.gnu.org/task/?group=hurd
  67. http://savannah.gnu.org/task/?group=hurd
  68. http://savannah.gnu.org/task/?group=hurd&func=browse&set=open
  69. http://savannah.gnu.org/task/?group=hurd&func=digest
  70. http://savannah.gnu.org/task/dependencies.php?group=hurd
  71. http://savannah.gnu.org/task/reporting.php?group=hurd
  72. http://savannah.gnu.org/task/?group=hurd&func=search
  73. http://savannah.gnu.org/patch/?group=hurd
  74. http://savannah.gnu.org/patch/?group=hurd
  75. http://savannah.gnu.org/patch/?group=hurd&func=browse&set=open
  76. http://savannah.gnu.org/patch/?group=hurd&func=digest
  77. http://savannah.gnu.org/patch/dependencies.php?group=hurd
  78. http://savannah.gnu.org/patch/reporting.php?group=hurd
  79. http://savannah.gnu.org/patch/?group=hurd&func=search
  80. http://savannah.gnu.org/news/?group=hurd
  81. http://savannah.gnu.org/news/?group=hurd
  82. http://savannah.gnu.org/news/atom.php?group=hurd
  83. http://savannah.gnu.org/bugs/?22861
  84. http://savannah.gnu.org/bugs/?22861#votes
  85. http://savannah.gnu.org/bugs/?22861#postcomment
  86. http://savannah.gnu.org/markup-test.php
  87. http://savannah.gnu.org/bugs/?22861#discussion
  89. http://savannah.gnu.org/users/kon
  91. http://savannah.gnu.org/users/sthibaul
  93. http://savannah.gnu.org/users/kon
  95. http://savannah.gnu.org/users/kon
  97. http://savannah.gnu.org/bugs/?22861#attached
  98. http://savannah.gnu.org/bugs/?22861#dependencies
  99. http://savannah.gnu.org/bugs/?22861#cc
 100. http://savannah.gnu.org/users/sthibaul
 101. http://savannah.gnu.org/users/kon
 102. http://savannah.gnu.org/users/kon
 103. http://savannah.gnu.org/bugs/?22861#votes
 104. https://en.wikipedia.org/wiki/George_Orwell
 105. http://savannah.gnu.org/bugs/?22861#history
 106. http://savannah.gnu.org/users/kon
 107. http://savannah.gnu.org/bugs/?22861#top
 108. http://www.gnu.org/graphics/meditate.html
 109. http://git.savannah.nongnu.org/cgit/administration/savane.git/plain//frontend/php/bugs/index.php?id=4b48cbb9570c156bf7d681225b664258d7028914
 110. http://git.savannah.nongnu.org/cgit/administration/savane.git/commit/?id=4b48cbb9570c156bf7d681225b664258d7028914


Usage: http://www.kk-software.de/kklynxview/get/URL
e.g. http://www.kk-software.de/kklynxview/get/http://www.kk-software.de
Errormessages are in German, sorry ;-)