[tor-bugs] #33087 [Core Tor/Tor]: closing stdio fds on exit can interfere with LeakSanitizer, etc

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Jan 29 21:14:38 UTC 2020


#33087: closing stdio fds on exit can interfere with LeakSanitizer, etc
-------------------------------------------------+-------------------------
 Reporter:  catalyst                             |          Owner:  (none)
     Type:  defect                               |         Status:  new
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  0.4.3.x-final
Component:  Core Tor/Tor                         |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  tor-log, 043-should, consider-       |  Actual Points:
  backport-after-0433, 041-backport,             |
  042-backport                                   |
Parent ID:                                       |         Points:
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by teor):

 fsync() seems to be pretty standard on recent macOS:
 {{{
      fsync() causes all modified data and attributes of fildes to be moved
 to
      a permanent storage device.  This normally results in all in-core
 modi-
      fied copies of buffers for the associated file to be written to a
 disk.
 }}}

 There are other macOS functions for a complete flush to disk, but they are
 specifically for disks and power failures:
 {{{
      For applications that require tighter guarantees about the integrity
 of
      their data, Mac OS X provides the F_FULLFSYNC fcntl.  The F_FULLFSYNC
      fcntl asks the drive to flush all buffered data to permanent storage.
      Applications, such as databases, that require a strict ordering of
 writes
      should use F_FULLFSYNC to ensure that their data is written in the
 order
      they expect.  Please see fcntl(2) for more detail.
 }}}

 If fsync() is interrupt-safe, we should use it.

 If it's not, maybe we should do nothing?
 (The other related tickets to#31594 already write an extra newline to all
 of the error fds. So that should flush any line-oriented buffers.)

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33087#comment:6>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list