Skip to content
Snippets Groups Projects
  • Aaron Jacobs's avatar
    50d0ee0c
    os: handle EINTR from open(2). · 50d0ee0c
    Aaron Jacobs authored
    The man page for sigaction(2) on OS X doesn't guarantee that SA_RESTART
    will work for open(2) on regular files:
    
        The affected system calls include open(2), read(2), write(2),
        sendto(2), recvfrom(2), sendmsg(2) and recvmsg(2) on a
        communications channel or a slow device (such as a terminal, but not
        a regular file) and during a wait(2) or ioctl(2).
    
    I've never observed EINTR from open(2) for a traditional file system
    such as HFS+, but it's easy to observe with a fuse file system that is
    slightly slow (cf. https://goo.gl/UxsVgB). After this change, the
    problem can no longer be reproduced when calling os.OpenFile.
    
    Fixes #11180.
    
    Change-Id: I967247430e20a7d29a285b3d76bf3498dc4773db
    Reviewed-on: https://go-review.googlesource.com/14484
    
    
    Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    50d0ee0c
    History
    os: handle EINTR from open(2).
    Aaron Jacobs authored
    The man page for sigaction(2) on OS X doesn't guarantee that SA_RESTART
    will work for open(2) on regular files:
    
        The affected system calls include open(2), read(2), write(2),
        sendto(2), recvfrom(2), sendmsg(2) and recvmsg(2) on a
        communications channel or a slow device (such as a terminal, but not
        a regular file) and during a wait(2) or ioctl(2).
    
    I've never observed EINTR from open(2) for a traditional file system
    such as HFS+, but it's easy to observe with a fuse file system that is
    slightly slow (cf. https://goo.gl/UxsVgB). After this change, the
    problem can no longer be reproduced when calling os.OpenFile.
    
    Fixes #11180.
    
    Change-Id: I967247430e20a7d29a285b3d76bf3498dc4773db
    Reviewed-on: https://go-review.googlesource.com/14484
    
    
    Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.