2018-04-06 12:22:30

by Paul Menzel

[permalink] [raw]
Subject: Commit *driver core: emit uevents when device is bound to a driver* causes regression

Dear Linux folks,


Commit 1455cf8 (driver core: emit uevents when device is bound to a
driver) [1], introduced in Linux 4.14-rc1, causes a regression in user
space.

After disconnecting USB devices, they are still shown as plugged in [2][3].

> I seem to be having a similar issue, but with an iPhone X using USB
> to provide internet access. Even after the phone is disconnected, it
> still shows up as "loaded active plugged". The only way to fix this
> is to reboot or use a different USB port.

`git bisect` shows that commit 1455cf8 (driver core: emit uevents when
device is bound to a driver) is at fault [4].

As user space should not break with newer Linux kernels, do you know
what to do about that or can you think of a fix?


Kind regards,

Paul


[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1455cf8dbfd06aa7651dcfccbadb7a093944ca65
[2] https://github.com/systemd/systemd/issues/7587
[3] https://bugs.debian.org/883425
[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=883425#68


Attachments:
smime.p7s (5.05 kB)
S/MIME Cryptographic Signature

2018-04-06 13:20:14

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: Commit *driver core: emit uevents when device is bound to a driver* causes regression

On Fri, Apr 06, 2018 at 02:20:40PM +0200, Paul Menzel wrote:
> Dear Linux folks,
>
>
> Commit 1455cf8 (driver core: emit uevents when device is bound to a
> driver) [1], introduced in Linux 4.14-rc1, causes a regression in user
> space.
>
> After disconnecting USB devices, they are still shown as plugged in [2][3].
>
> > I seem to be having a similar issue, but with an iPhone X using USB
> > to provide internet access. Even after the phone is disconnected, it
> > still shows up as "loaded active plugged". The only way to fix this
> > is to reboot or use a different USB port.
>
> `git bisect` shows that commit 1455cf8 (driver core: emit uevents when
> device is bound to a driver) is at fault [4].
>
> As user space should not break with newer Linux kernels, do you know what to
> do about that or can you think of a fix?

I thought we fixed this with follow-on patches, are you sure you are
using the latest 4.14.y kernel that has been released?

thanks,

greg k-h

2018-04-06 13:26:33

by Paul Menzel

[permalink] [raw]
Subject: Re: Commit *driver core: emit uevents when device is bound to a driver* causes regression

Dear Greg,


On 04/06/18 15:18, Greg Kroah-Hartman wrote:
> On Fri, Apr 06, 2018 at 02:20:40PM +0200, Paul Menzel wrote:

>> Commit 1455cf8 (driver core: emit uevents when device is bound to a
>> driver) [1], introduced in Linux 4.14-rc1, causes a regression in user
>> space.
>>
>> After disconnecting USB devices, they are still shown as plugged in [2][3].
>>
>>> I seem to be having a similar issue, but with an iPhone X using USB
>>> to provide internet access. Even after the phone is disconnected, it
>>> still shows up as "loaded active plugged". The only way to fix this
>>> is to reboot or use a different USB port.
>>
>> `git bisect` shows that commit 1455cf8 (driver core: emit uevents when
>> device is bound to a driver) is at fault [4].
>>
>> As user space should not break with newer Linux kernels, do you know what to
>> do about that or can you think of a fix?
>
> I thought we fixed this with follow-on patches, are you sure you are
> using the latest 4.14.y kernel that has been released?

Here we are using Linux 4.14.30. We can try newer versions next week.


Kind regards,

Paul


Attachments:
smime.p7s (5.05 kB)
S/MIME Cryptographic Signature

2018-04-06 13:49:10

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: Commit *driver core: emit uevents when device is bound to a driver* causes regression

On Fri, Apr 06, 2018 at 03:24:39PM +0200, Paul Menzel wrote:
> Dear Greg,
>
>
> On 04/06/18 15:18, Greg Kroah-Hartman wrote:
> > On Fri, Apr 06, 2018 at 02:20:40PM +0200, Paul Menzel wrote:
>
> > > Commit 1455cf8 (driver core: emit uevents when device is bound to a
> > > driver) [1], introduced in Linux 4.14-rc1, causes a regression in user
> > > space.
> > >
> > > After disconnecting USB devices, they are still shown as plugged in [2][3].
> > >
> > > > I seem to be having a similar issue, but with an iPhone X using USB
> > > > to provide internet access. Even after the phone is disconnected, it
> > > > still shows up as "loaded active plugged". The only way to fix this
> > > > is to reboot or use a different USB port.
> > >
> > > `git bisect` shows that commit 1455cf8 (driver core: emit uevents when
> > > device is bound to a driver) is at fault [4].
> > >
> > > As user space should not break with newer Linux kernels, do you know what to
> > > do about that or can you think of a fix?
> >
> > I thought we fixed this with follow-on patches, are you sure you are
> > using the latest 4.14.y kernel that has been released?
>
> Here we are using Linux 4.14.30. We can try newer versions next week.

Ah, no, 4.14.30 should be fine.

I saw the patch listed in the debian bug report, so this only happens
for the MTP type devices? That was a really odd "filter" that it was
trying to use before.

So this is only for userspace programs, and one specifically? And for
only one type of device? What device, MTP devices?

thanks,

greg k-h

2018-04-06 15:06:00

by Ben Caradoc-Davies

[permalink] [raw]
Subject: Re: Commit *driver core: emit uevents when device is bound to a driver* causes regression

Paul,

I agree that this is a regression in user space, but I would also like
to note that, as I reported in Debian Bug#883425 ([3] and [4] below), I
was able to restore user space functionality by upgrading to gvfs
1.35.90-1. This later gvfs appears to support (i.e. survive) these uevents.

Kind regards,
Ben.

On 07/04/18 00:20, Paul Menzel wrote:
> Dear Linux folks,
>
>
> Commit 1455cf8 (driver core: emit uevents when device is bound to a
> driver) [1], introduced in Linux 4.14-rc1, causes a regression in user
> space.
>
> After disconnecting USB devices, they are still shown as plugged in [2][3].
>
>> I seem to be having a similar issue, but with an iPhone X using USB
>> to provide internet access. Even after the phone is disconnected, it
>> still shows up as "loaded active plugged". The only way to fix this
>> is to reboot or use a different USB port.
>
> `git bisect` shows that commit 1455cf8 (driver core: emit uevents when
> device is bound to a driver) is at fault [4].
>
> As user space should not break with newer Linux kernels, do you know
> what to do about that or can you think of a fix?
>
>
> Kind regards,
>
> Paul
>
>
> [1]
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1455cf8dbfd06aa7651dcfccbadb7a093944ca65
>
> [2] https://github.com/systemd/systemd/issues/7587
> [3] https://bugs.debian.org/883425
> [4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=883425#68
>

--
Ben Caradoc-Davies <[email protected]>
Director
Transient Software Limited <https://transient.nz/>
New Zealand

2018-04-06 18:29:30

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: Commit *driver core: emit uevents when device is bound to a driver* causes regression

On Fri, Apr 6, 2018 at 6:27 AM, Greg Kroah-Hartman
<[email protected]> wrote:
> On Fri, Apr 06, 2018 at 03:24:39PM +0200, Paul Menzel wrote:
>> Dear Greg,
>>
>>
>> On 04/06/18 15:18, Greg Kroah-Hartman wrote:
>> > On Fri, Apr 06, 2018 at 02:20:40PM +0200, Paul Menzel wrote:
>>
>> > > Commit 1455cf8 (driver core: emit uevents when device is bound to a
>> > > driver) [1], introduced in Linux 4.14-rc1, causes a regression in user
>> > > space.
>> > >
>> > > After disconnecting USB devices, they are still shown as plugged in [2][3].
>> > >
>> > > > I seem to be having a similar issue, but with an iPhone X using USB
>> > > > to provide internet access. Even after the phone is disconnected, it
>> > > > still shows up as "loaded active plugged". The only way to fix this
>> > > > is to reboot or use a different USB port.
>> > >
>> > > `git bisect` shows that commit 1455cf8 (driver core: emit uevents when
>> > > device is bound to a driver) is at fault [4].
>> > >
>> > > As user space should not break with newer Linux kernels, do you know what to
>> > > do about that or can you think of a fix?
>> >
>> > I thought we fixed this with follow-on patches, are you sure you are
>> > using the latest 4.14.y kernel that has been released?
>>
>> Here we are using Linux 4.14.30. We can try newer versions next week.
>
> Ah, no, 4.14.30 should be fine.
>
> I saw the patch listed in the debian bug report, so this only happens
> for the MTP type devices? That was a really odd "filter" that it was
> trying to use before.
>
> So this is only for userspace programs, and one specifically? And for
> only one type of device? What device, MTP devices?

So looking at reports, gvfs is fixed, upowerd simply uses g_warning()
for actions it does nto understand and I'll send a patch lowering this
to g_debug(); what else is having trouble with the new actions?

Thanks.

--
Dmitry