Subject: bug#33946: tail -f stops abruptly in AIX when piped.

From: "Ayappan P2" <[email-masked]>
Date: Fri, 4 Jan 2019 12:31:06 +0530

The problem happens only when we pipe the output of "tail -f" .

I am not sure how one can take the truss of   "/tail -f test_file | grep
123" .

I did little debugging on the tail code. This function "check_output_alive"
introduced by the commit (mentioned earlier in the thread) sents SIGPIPE
after doing a select () call in AIX.
And that makes it exit immediately.

   fd_set rfd;
   FD_ZERO (&rfd);
   FD_SET (STDOUT_FILENO, &rfd);

    /* readable event on STDOUT is equivalent to POLLERR,
      and implies an error condition on output like broken pipe.  */
   if (select (STDOUT_FILENO + 1, &rfd, NULL, NULL, &delay) == 1)
     raise (SIGPIPE);
 }

I didn't understand the real reason behind this commit.

Thanks
Ayappan P

From:	Bernhard Voelker <[email-masked]>
To:	Ayappan P2 <[email-masked]>, [email-masked]
Date:	01/03/2019 11:53 PM
Subject:	bug#33946: tail -f stops abruptly in AIX when piped.
Sent by:	"Bug-coreutils" <bug-coreutils-bounces
            +ayappap2=[email-masked]>

On 1/3/19 6:39 PM, Ayappan P2 wrote:
>> On 01-Jan-2019, at 10:36 PM, Ayappan P2 <[email-masked]> wrote:
>> Hi,
>>
>> I am running coreutils 8.30 in AIX machine and it seems like "tail -f"
is
>> not working as it used to be when the output is piped.
>>
>> # ./tail -f test_file | grep 123
>>
>> (1) root @ aixoss-automation-3: 6.1.0.0: /
>>
>> It stops immediately  and it seems like this commit
>>
>>
https://github.com/coreutils/coreutils/commit/ce0415fda108b7ec35181118fd7a2c9ee70331ee

>>
>> has introduce this behavior.
>>
>> I checked in Linux with coreutils 8.30 where it works as like earlier
>> versions.
>>
>> Thanks
>> Ayappan P

> Anyone has any idea on this issue ?
>
> Thanks
> Ayappan P

Thanks for reporting.
It's hard (at least for me) to get hold on to an AIX system,
so would you post a trace file (from 'truss'), please?

Second, is this specific to a certain AIX version?

BTW: our tests should have caught this before the release.
Do you also get an error during 'make check'?

Have a nice day,
Berny