Exited abnormally: Broken pipe

  • Hi,

    I'm seeing a lot of reports from beta testers of my app that the app
    suddenly dies, printing the following message to the console log:

    2008-02-08 09.50.15 com.apple.launchd[79]
    ([0x0-0x135135].com.lightheadsw.Papaya[2404]) Exited abnormally:
    Broken pipe

    It's not a crash per se, the app just dies. So there's no crash log.
    It supposedly happens pretty randomly, and I really can't reproduce it
    myself. Google returns no useful results, so I'm clueless. If anyone
    has any idea of why this might happen, or even a weak pointer in the
    right direction, that'd be wonderful.

    The app is a web server, so it uses a lot of sockets and stuff. If
    that's any help.

    Thanks!

    Tomas Franzén
    Lighthead Software
    You're trying to read write to a pipe fd that has been closed on you.
    Trap SIGPIPE (man 3 signal) and you'll get a better understanding of
    where this is happening.

    --Kyle Sluder

    On Feb 17, 2008 11:58 AM, Tomas Franzén <tomas...> wrote:
    > Hi,
    >
    > I'm seeing a lot of reports from beta testers of my app that the app
    > suddenly dies, printing the following message to the console log:
    >
    > 2008-02-08 09.50.15 com.apple.launchd[79]
    > ([0x0-0x135135].com.lightheadsw.Papaya[2404]) Exited abnormally:
    > Broken pipe
    >
    > It's not a crash per se, the app just dies. So there's no crash log.
    > It supposedly happens pretty randomly, and I really can't reproduce it
    > myself. Google returns no useful results, so I'm clueless. If anyone
    > has any idea of why this might happen, or even a weak pointer in the
    > right direction, that'd be wonderful.
    >
    > The app is a web server, so it uses a lot of sockets and stuff. If
    > that's any help.
    >
    > Thanks!
    >
    > Tomas Franzén
    > Lighthead Software
    >
    On 17 Feb '08, at 11:35 AM, Kyle Sluder wrote:

    > You're trying to read write to a pipe fd that has been closed on you.
    > Trap SIGPIPE (man 3 signal) and you'll get a better understanding of
    > where this is happening.

    SIGPIPE is widely considered a nuisance. Many programs call signal(2)
    at startup to ignore that signal completely. Just be sure to check
    errno after a failed read/write, to detect when the socket got closed
    from underneath you.

    —Jens