From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24402 invoked from network); 15 May 2021 01:37:56 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 15 May 2021 01:37:56 -0000 Received: (qmail 25928 invoked by uid 550); 15 May 2021 01:37:51 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 25892 invoked from network); 15 May 2021 01:37:51 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:message-id:date:mime-version:content-language; bh=ilxjCfSl5zxwVg8Op78ZViqufQswJDfb4aH74e8PDYo=; b=Hr5R+Fji3pX8MgKwH/DWE4ZhFAdWU74W3XkJnr68aRLMDudMHVSPLxJwIC5MJtXZzI /09ezzaIFg85LZxzjhME3jGhyETCNV8Rc6go+YD0+XMwAtb0A+9DZ9ReTwPlB/WVCsG2 nkI0xG2/RpOv9xpOUsiZBe2ScnH4VyoX+fL2o2XF+3FG8JjGZbOHRXRPSt2wi/J0TsAw 9QnS2Z8ErcjeR2AegzSriFXS55znMq9eovydZ39Xi2/bajhNzOkd6wl9R6GwAXUmdSZ5 lRLw2frkSGPWITN3y0ZAxt8FO6YHq72MZY2fntrEqOx8G6a1H7RQGWqC2DUJcaOzqYn0 n5/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:mime-version :content-language; bh=ilxjCfSl5zxwVg8Op78ZViqufQswJDfb4aH74e8PDYo=; b=LYR2ICpCrh9u7lvw1Pn0J1GqnWiOJQ9e6nwKoCvqjVsjBmew/j+zFqVqk+61O23Zrj O1nXk+y+Rp4Xh3wXpwhxok79PVcAmip2oIQt59Gx+hKt1fwzuqQdbQOsGkVGlJXuVeft YGtGHkEprc5XNlTUqE9whQMWmFB6aV2Lt5sZQllA5+sG/G73Fk2rYDcP9LD5rnTR3iHW /for/wFDTRifQWl7vbhalVP2ZzvhhjACffxh/1/+uPyfQ8PwJFXp2x8MIpqd1jq3tLrZ vHxkbcNP/0DivDocQIC7WqsMn9G3KysUf5la2tzia9eR1S41HuRpPw5SA8W+0he/fXat BNDg== X-Gm-Message-State: AOAM533oVulukdvgOJnUzyGkt/4CYl0I4WPd4Rp2S4BJj/J5ctEZar/Q 6KvSkvpE+oSu9v6+64ZtJe9nNQjfX4c= X-Google-Smtp-Source: ABdhPJzc07jOacUY0lIV6mcn+6vdvZAiSJ82Gty4TYoQ1FGF5koDLo28h8ift7m1z5aTx8NkSCmAoQ== X-Received: by 2002:a05:620a:164e:: with SMTP id c14mr29789018qko.103.1621042659058; Fri, 14 May 2021 18:37:39 -0700 (PDT) To: musl@lists.openwall.com From: Dominic Chen Message-ID: <6f1116b7-0124-6c56-d149-2625049708f1@gmail.com> Date: Fri, 14 May 2021 21:37:37 -0400 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------6D296F4DD925AFB769F0425E" Content-Language: en-US Subject: [musl] [PATCH] __stdio_write: retry on interrupted system call This is a multi-part message in MIME format. --------------6D296F4DD925AFB769F0425E Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit I've noticed that my C++ application stops printing to stdout after a while, and I didn't know why. It turns out that printing via 'std::ostream::operator<<' will eventually call '__stdio_write()', which then calls 'writev()'. But, if 'writev()' is interrupted by a signal and SA_RESTART is not set, then it will return EINTR, which will cause both the 'FILE' structure and the corresponding C++ stream to be marked bad. I think the current behavior is very confusing, so attached is a patch to retry on EINTR. Thanks, Dominic --------------6D296F4DD925AFB769F0425E Content-Type: text/plain; charset=UTF-8; name="0001-__stdio_write-retry-on-interrupted-system-call.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-__stdio_write-retry-on-interrupted-system-call.patch" RnJvbSA2NDI4YTNiYWFmNjViMjZkN2IyYzRlMDlkMTY4OGEwY2IwOGZhNGY3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIENoZW4gPGQuYy5kZGNjQGdtYWlsLmNv bT4KRGF0ZTogRnJpLCAxNCBNYXkgMjAyMSAyMTowOTozMyAtMDQwMApTdWJqZWN0OiBbUEFU Q0hdIF9fc3RkaW9fd3JpdGU6IHJldHJ5IG9uIGludGVycnVwdGVkIHN5c3RlbSBjYWxsCgot LS0KIHNyYy9zdGRpby9fX3N0ZGlvX3dyaXRlLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3N0ZGlvL19fc3RkaW9fd3JpdGUu YyBiL3NyYy9zdGRpby9fX3N0ZGlvX3dyaXRlLmMKaW5kZXggZDJkODk0NzUuLjE0MmFmMGJm IDEwMDY0NAotLS0gYS9zcmMvc3RkaW8vX19zdGRpb193cml0ZS5jCisrKyBiL3NyYy9zdGRp by9fX3N0ZGlvX3dyaXRlLmMKQEAgLTE5LDYgKzE5LDggQEAgc2l6ZV90IF9fc3RkaW9fd3Jp dGUoRklMRSAqZiwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuKQogCQkJ cmV0dXJuIGxlbjsKIAkJfQogCQlpZiAoY250IDwgMCkgeworCQkJaWYgKGVycm5vID09IEVJ TlRSKQorCQkJCWNvbnRpbnVlOwogCQkJZi0+d3BvcyA9IGYtPndiYXNlID0gZi0+d2VuZCA9 IDA7CiAJCQlmLT5mbGFncyB8PSBGX0VSUjsKIAkJCXJldHVybiBpb3ZjbnQgPT0gMiA/IDAg OiBsZW4taW92WzBdLmlvdl9sZW47Ci0tIAoyLjI1LjEKCg== --------------6D296F4DD925AFB769F0425E--