2013-08-09 21:11:28

by Andi Kleen

[permalink] [raw]
Subject: pty FIONREAD returning zero breaks emacs in 3.11rc3


When I run emacs over ssh terminal (no X) on 3.11-rc3 it often ignores key
strokes. I first thought the system was busy or so, but when
stracing the emacs it was not blocked.

Here's a typical sequence. select/SIGIO wakes it up, but then
FIONREAD returns 0.

I'm not fully sure when it started.

It does not happen all the time, but is quite frequent.

ioctl(3, FIONREAD, [0]) = 0
pselect6(4, [3], [], NULL, {17, 952336932}, {NULL, 8}) = 1 (in [3], left
{17, 504942810})
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
rt_sigreturn() = 1
ioctl(3, FIONREAD, [0]) = 0
ioctl(3, FIONREAD, [0]) = 0
pselect6(4, [3], [], NULL, {17, 504298807}, {NULL, 8}) = ?
ERESTARTNOHAND (Interrupted by signal)
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
rt_sigreturn() = -1 EINTR (Interrupted system
call)
ioctl(3, FIONREAD, [0]) = 0
pselect6(4, [3], [], NULL, {17, 103972440}, {NULL, 8}) = 1 (in [3], left
{16, 864890560})
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
rt_sigreturn() = 1


--
[email protected] -- Speaking for myself only.


2013-08-13 01:43:48

by Peter Hurley

[permalink] [raw]
Subject: Re: pty FIONREAD returning zero breaks emacs in 3.11rc3

On 08/09/2013 05:11 PM, Andi Kleen wrote:
>
> When I run emacs over ssh terminal (no X) on 3.11-rc3 it often ignores key
> strokes. I first thought the system was busy or so, but when
> stracing the emacs it was not blocked.

Andi,

More information might help me narrow this down since I can't
reproduce this.

Is the ssh session remote?
Can you reproduce this on a local ssh session?
What version of emacs is this? Is it the nox flavor?
What distribution/version?
What platform?

> Here's a typical sequence. select/SIGIO wakes it up, but then
> FIONREAD returns 0.
>
> I'm not fully sure when it started.

In the 3.11 cycle? or could have started back on 3.9 or earlier?

Could you try to reproduce this on linux-next?

> It does not happen all the time, but is quite frequent.
>
> ioctl(3, FIONREAD, [0]) = 0
> pselect6(4, [3], [], NULL, {17, 952336932}, {NULL, 8}) = 1 (in [3], left
> {17, 504942810})
> --- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
> rt_sigreturn() = 1
> ioctl(3, FIONREAD, [0]) = 0
> ioctl(3, FIONREAD, [0]) = 0
> pselect6(4, [3], [], NULL, {17, 504298807}, {NULL, 8}) = ?
> ERESTARTNOHAND (Interrupted by signal)
> --- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
> rt_sigreturn() = -1 EINTR (Interrupted system
> call)
> ioctl(3, FIONREAD, [0]) = 0
> pselect6(4, [3], [], NULL, {17, 103972440}, {NULL, 8}) = 1 (in [3], left
> {16, 864890560})
> --- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
> rt_sigreturn() = 1

Would you please attach the full strace of emacs from this session?

Regards,
Peter Hurley

2013-08-13 22:03:18

by Andi Kleen

[permalink] [raw]
Subject: Re: pty FIONREAD returning zero breaks emacs in 3.11rc3

On Mon, Aug 12, 2013 at 09:43:43PM -0400, Peter Hurley wrote:
> On 08/09/2013 05:11 PM, Andi Kleen wrote:
> >
> >When I run emacs over ssh terminal (no X) on 3.11-rc3 it often ignores key
> >strokes. I first thought the system was busy or so, but when
> >stracing the emacs it was not blocked.
>
> Andi,
>
> More information might help me narrow this down since I can't
> reproduce this.
>
> Is the ssh session remote?

Yes.

> Can you reproduce this on a local ssh session?

Yes.

> What version of emacs is this? Is it the nox flavor?

emacs-24.3-6.11.x86_64

It's emacs-gtk


> What distribution/version?

Current Tumbleweed

> What platform?

x86_64 2S Westmere

>
> >Here's a typical sequence. select/SIGIO wakes it up, but then
> >FIONREAD returns 0.
> >
> >I'm not fully sure when it started.
>
> In the 3.11 cycle? or could have started back on 3.9 or earlier?

Ok I tried and it actually happens on 3.9 too. For some reason
I didn't notice it earlier (or blamed my bad typing)
Haven't tried earlier

>
> Could you try to reproduce this on linux-next?

Happens on linux-next too.
>
> Would you please attach the full strace of emacs from this session?

Attached (from a different session)

-Andi


Attachments:
(No filename) (1.18 kB)
log.xz (14.09 kB)
Download all attachments

2013-08-14 16:07:57

by Peter Hurley

[permalink] [raw]
Subject: Re: pty FIONREAD returning zero breaks emacs in 3.11rc3

On 08/13/2013 06:03 PM, Andi Kleen wrote:
> On Mon, Aug 12, 2013 at 09:43:43PM -0400, Peter Hurley wrote:
>> On 08/09/2013 05:11 PM, Andi Kleen wrote:
>>>
>>> When I run emacs over ssh terminal (no X) on 3.11-rc3 it often ignores key
>>> strokes. I first thought the system was busy or so, but when
>>> stracing the emacs it was not blocked.
>>
>> Andi,
>>
>> More information might help me narrow this down since I can't
>> reproduce this.
>>
>> Is the ssh session remote?
>
> Yes.
>
>> Can you reproduce this on a local ssh session?
>
> Yes.
>
>> What version of emacs is this? Is it the nox flavor?
>
> emacs-24.3-6.11.x86_64
>
> It's emacs-gtk
>
>
>> What distribution/version?
>
> Current Tumbleweed
>
>> What platform?
>
> x86_64 2S Westmere

Thanks. I'll need to install Tumbleweed to attempt to reproduce this.

>>> Here's a typical sequence. select/SIGIO wakes it up, but then
>>> FIONREAD returns 0.
>>>
>>> I'm not fully sure when it started.
>>
>> In the 3.11 cycle? or could have started back on 3.9 or earlier?
>
> Ok I tried and it actually happens on 3.9 too. For some reason
> I didn't notice it earlier (or blamed my bad typing)
> Haven't tried earlier

Ok. Thanks for testing 3.9 -- that eliminates a lot of possible
culprits.

>>
>> Could you try to reproduce this on linux-next?
>
> Happens on linux-next too.
>>
>> Would you please attach the full strace of emacs from this session?
>
> Attached (from a different session)

Can you send me more of the original session?

The session you sent me didn't exhibit the problem of pselect()
indicating input available but ioctl(FIONREAD) returning 0.
It may have seemed that input wasn't being read but actually
emacs was beeping you back for each input (that's what all the
write('\7') are about in the strace).

Regards,
Peter Hurley