#1069621 rust-event-listener: no-default-features autopkgtest fails

#1069621#5
Date:
2024-04-21 17:41:24 UTC
From:
To:
rust-event-listener's --no-default-features autopkgtest is failing:

https://ci.debian.net/packages/r/rust-event-listener/unstable/amd64/

This issue will block the rust-event-listener transition. I suggest
marking the autopkgtest as flaky and reporting the issue upstream.

Thank you,
Jeremy Bícha

#1069621#10
Date:
2024-04-21 17:47:08 UTC
From:
To:
Simple patch attached.

Thank you,
Jeremy Bícha

#1069621#15
Date:
2024-06-10 09:17:04 UTC
From:
To:
Quoting Jeremy Bícha (2024-04-21 19:47:08)
the upstream bugs recently tracked upstream, which might in Debian be
affected by relaxed dependencies e.g. on concurrent-queue.

 - Jonas

#1069621#20
Date:
2024-06-18 13:18:17 UTC
From:
To:
On Mon, 10 Jun 2024 11:17:04 +0200 Jonas Smedegaard <jonas@jones.dk> wrote:
 > Quoting Jeremy Bícha (2024-04-21 19:47:08)
 > > Simple patch attached.
 >
 > I am not convinced that this issue should be ignored: Might be revealing
 > the upstream bugs recently tracked upstream, which might in Debian be
 > affected by relaxed dependencies e.g. on concurrent-queue.
 >

Any news on this ? event-listener is currently blocking zbus 4.0 which
in turn prevents me from fixing the remaining GTK4 rust packages.


best, werdahias

#1069621#25
Date:
2024-06-18 20:58:59 UTC
From:
To:
Quoting Matthias Geiger (2024-06-18 15:18:17)

Not sure what you mean.

This bug affects only event-listener in experimental, which will never
transition anywhere. So the concern raised is only for the situation when
event-listener gets released to unstable - which requires all involved
packages to be in sync and buildable at all, and only then does it make
sense to me to check if this instability persists.

It seems these packages still need to be updated as well:

* async-channel
* async-process (awaits new crate async-signal)
* async-std (awaits async-process)
* blocking
* criterion (awaits smol)
* criterion-0.3 (awaits smol)
* fs4 (awaits smol)
* if-watch (awaits smol)
* isahc
* sluice
* smol
* zbus

 - Jonas

#1069621#30
Date:
2024-06-23 15:11:39 UTC
From:
To:
Quoting Jonas Smedegaard (2024-06-18 22:58:59)

Here is a more complete list of branch transisioning entanglements for
async-broadcast, async-channel, async-lock, async-process, event-listener
and smol.

DONE for unstable:

* blocking
  * v1.4.1 accepts async-channel v1+2 in unstable
  * v1.4.1 accepts async-lock v2+3 in unstable

DONE for experimental, just need re-release for unstable:

* async-channel
  * involves branch transition: v1 -> v2
  * v2.3.1 accepts event-listener v5 in experimental
    (via event-listener-strategy)
  * v2.3.1 succeeds build-time testsuite in experimental
* async-executor
  * v1.12.0 stops needing async-lock v2 in experimental
  * v1.12.0 succeeds build-time testsuite in experimental
* async-lock
  * involves branch transition: v2 -> v3
  * v3.4.0 accepts event-listener v5 in experimental
  * v3.4.0 succeeds build-time testsuite in experimental
* async-process
  * involves branch transition: v1 -> v2
  * v2.2.3 accepts async-channel v2 in experimental
  * v2.2.3 accepts async-lock v2+3 in experimental
  * v2.2.3 accepts event-listener v5 in experimental
  * v2.2.3 succeeds build-time testsuite in experimental
* async-std
  * needs to accept async-channel v2 at least in experimental
  * needs to accept async-lock v3 at least in experimental
  * needs to accept async-process v2 at least in experimental
  * awaits librust-async-global-executor-dev
* event-listener
  * involves branch transition: v2 -> v5
  * v5.3.1 succeeds build-time testsuite in experimental

TODO:

* async-broadcast
  * involves branch transition: v0.5 -> v0.7
  * v0.7.0 accepts event-listener v5 in experimental
  * needs custom testing: package lacks build-time testing
* async-fs
  * v2.1.2 accepts async-lock v2+3 in unstable
  * v2.1.2 succeeds build-time testsuite in unstable
  * awaits possible revert if unstable zbus cannot fit new branch
    <https://bugs.debian.org/1074107>
* async-global-executor
  * needs to accept async-channel v2 at least in experimental
    <https://bugs.debian.org/1074067>
    <https://bugs.debian.org/1074114>
  * needs to accept async-lock v3 at least in experimental
  * needs custom testing: package lacks build-time testing
* async-io
  * v2.3.3 accepts async-lock v3 in experimental
  * needs custom testing: package lacks build-time testing
* async-mutex
  * v1.4.0 accepts event-listener v5 in experimental
  * needs custom testing: package lacks build-time testing
* blocking
  * v1.6.1 accepts async-channel v2 in experimental
* criterion
  * needs to accept smol v2 at least in experimental
* criterion-0.3
  * needs to accept smol v2 at least in experimental
    (or obsoletion: https://bugs.debian.org/1074104)
* crosstermion
  * v0.14.0 accepts async-channel v2 in experimental, sloppily
  * needs custom testing: package lacks build-time testing
* event-listener-strategy
  * v0.5.2 accepts event-listener v5 in experimental
  * needs custom testing: package lacks build-time testing
* fs4
  * needs to accept smol v2 at least in experimental
  * needs custom testing: package lacks build-time testing
* gst-plugin-gtk4
  * needs to accept async-channel v2 at least in experimental
  * needs custom testing: package lacks build-time testing
* if-watch
  * needs to accept smol v2 at least in experimental
* isahc
  * needs to accept async-channel v2 at least in experimental
  * needs to accept event-listener v5 at least in experimental
* sluice
  * needs to accept async-channel v2 at least in experimental
  * needs custom testing: package lacks build-time testing
* smol
  * involves branch transition: v1 -> v2
  * v2.0.0 accepts async-channel v1+2 in experimental
  * v2.0.0 accepts async-fs v1+2 in experimental
  * v2.0.0 accepts async-lock v3 in experimental
  * awaits blocking
* sqlx-core
  * v0.7.3 accepts event-listener v5 in experimental
  * needs custom testing: package lacks build-time testing
* zbus
  * needs to accept async-fs in unstable
    <https://bugs.debian.org/1074107>
  * needs to accept event-listener v5 at least in experimental
  * needs custom testing: package lacks build-time testing

My next tasks is to get smol working in experimental, and then the
packages depending on smol as well.

After that, I am ready to "flip the switch" and re-release all packages
now in experimental for unstable.  But I would be quite frustrated if it
turns out that the sloppy packaging style by the Rust team has caused
some breakage goes undetected, so I will wait for your guys from the Rust
team to state explicitly here in this bugreport, that you believe that
all the packages listed above as "needs custom testing" are good to go.

Kind regards,

 - Jonas

#1069621#35
Date:
2024-06-23 18:20:59 UTC
From:
To:
23.06.2024 17:11:51 Jonas Smedegaard <js@debian.org>:
Jonas,

thanks for the thorough analysis. For the packages I staged in
experimental all tests passed (build + autopkgtest), so certainly no
sloppy work ! I will upload a patched zbus, gst-plugin-gtk4 and the few
remaining crates which haven't been patched yet. Thanks for the
bugreports, I expect to stage everything tomorrow (to exp). In case I
don't run into any issues I'd gladly start the transition after this.

Kind regards,

werdahias

#1069621#40
Date:
2024-06-23 21:33:06 UTC
From:
To:
Quoting Matthias Geiger (2024-06-23 20:20:59)

I didn't mean that maintenance work was sloppy, but that the packaging
*style* is sloppy, requiring you to do autopkgtesting.

When did you test?  Because the related packages have changed until I
posted that email.

Sounds good.

 - Jonas

#1069621#45
Date:
2024-06-25 21:15:58 UTC
From:
To:
done.
done.
done.
done.
does not build with async-channel 2.x easily. will look into getting it
patched.

done, thanks to plugwash.

Bar sluice everything has been uploaded; once that has landed we can
make the switch imo.


best,


werdahias

#1069621#50
Date:
2024-06-26 05:20:35 UTC
From:
To:
Quoting Matthias Geiger (2024-06-25 23:15:58)

Great!

I am still fighting with async-std and if-watch but am optimistic (and I
have given up on isahc for different reasons).

Please post here when you consider sluice ready, then I will do the same
for async-std and if-watch - and when all 3 are ready I suggest that we
simply begin the re-release to unstable as much parallel as possible.

Thanks for the help!

 - Jonas

#1069621#57
Date:
2024-07-04 01:24:58 UTC
From:
To:
Quoting Jonas Smedegaard (2024-06-18 22:58:59)

Here is the current status:

DONE in unstable:

* async-fs
  * v2.1.2 accepts async-lock v2+3 in unstable
  * v2.1.2 succeeds build-time testsuite and autopkgtests in unstable
* blocking
  * v1.6.1 accepts async-channel v1+2 in unstable
  * v1.6.1 succeeds build-time testsuite and autopkgtests in unstable
* criterion
  * v0.5.1 accepts smol v1+2 in unstable
  * v0.5.1 succeeds build-time testsuite and autopkgtests in unstable
* criterion-0.3
  * v0.3.6 accepts smol v1+2 in unstable
  * v0.3.6 succeeds build-time testsuite and autopkgtests in unstable

DONE in experimental, just need re-release for unstable:

* async-channel
  * involves branch transition: v1 -> v2
  * v2.3.1 accepts event-listener v5 in experimental
    (via event-listener-strategy)
  * v2.3.1 succeeds build-time testsuite in experimental
* async-executor
  * v1.12.0 stops needing async-lock v2 in experimental
  * v1.12.0 succeeds build-time testsuite in experimental
* async-lock
  * involves branch transition: v2 -> v3
  * v3.4.0 accepts event-listener v5 in experimental
  * v3.4.0 succeeds build-time testsuite in experimental
* async-process
  * involves branch transition: v1 -> v2
  * v2.2.3 accepts async-channel v2 in experimental
  * v2.2.3 accepts async-lock v2+3 in experimental
  * v2.2.3 accepts event-listener v5 in experimental
  * v2.2.3 succeeds build-time testsuite in experimental
* event-listener
  * involves branch transition: v2 -> v5
  * v5.3.1 succeeds build-time testsuite in experimental
* if-watch
  * v3.2.0 accepts smol v1+2 in unstable
  * v3.2.0 succeeds build-time testsuite and autopkgtests in unstable
* smol
  * involves branch transition: v1 -> v2
  * v2.0.0 accepts async-channel v1+2 in experimental
  * v2.0.0 accepts async-fs v1+2 in experimental
  * v2.0.0 accepts async-lock v3 in experimental
  * v2.0.0 succeeds build-time testsuite in experimental

DONE but awaits testing:

* async-std
  * v1.12.0 accepts async-channel v1+2 in unstable
  * v1.12.0 accepts async-lock v2+3 in unstable
  * v1.12.0 accepts async-process v1+2 in unstable
  * needs to succeed build-time testsuite and autopkgtests in unstable

TODO:

* async-broadcast
  * involves branch transition: v0.5 -> v0.7
  * v0.7.0 accepts event-listener v5 in experimental
  * needs custom testing: package lacks build-time testing
* async-global-executor
  * needs to accept async-channel v2 at least in experimental
    <https://bugs.debian.org/1074067>
    <https://bugs.debian.org/1074114>
  * needs to accept async-lock v3 at least in experimental
  * needs custom testing: package lacks build-time testing
* async-io
  * v2.3.3 accepts async-lock v3 in experimental
  * needs custom testing: package lacks build-time testing
* async-mutex
  * v1.4.0 accepts event-listener v5 in experimental
  * needs custom testing: package lacks build-time testing
* crosstermion
  * v0.14.0 accepts async-channel v2 in experimental, sloppily
  * needs custom testing: package lacks build-time testing
* event-listener-strategy
  * v0.5.2 accepts event-listener v5 in experimental
  * needs custom testing: package lacks build-time testing
* fs4
  * needs to accept smol v2 at least in experimental
  * needs custom testing: package lacks build-time testing
* gst-plugin-gtk4
  * needs to accept async-channel v2 at least in experimental
  * needs custom testing: package lacks build-time testing
* sluice
  * needs to accept async-channel v2 at least in experimental
  * needs custom testing: package lacks build-time testing
* sqlx-core
  * v0.7.3 accepts event-listener v5 in experimental
  * needs custom testing: package lacks build-time testing
* zbus
  * needs to accept event-listener v5 at least in experimental
  * needs custom testing: package lacks build-time testing

BROKEN for different reasons

* isahc
  * needs to accept async-channel v2 at least in experimental
  * needs to accept event-listener v5 at least in experimental
  * broken

If, as expected, testing of async-std turns succesfull, I am ready to
re-release to unstable all of the packages listed above that is
currently lingering in experimental.

Please tell when you are ready as well, for the packages above listed as
needing custom testing.  Only say so when they are *all* ready.

Kind regards, and thanks for all your help and patience,

 - Jonas

#1069621#62
Date:
2024-07-06 16:49:23 UTC
From:
To:
[...]
Patching sluice seems not trivial. Given that it's sole rdep is isahc,
would you be ok with me filing a RM request for it if I patch isahc to
use standard rust pipes ? imo this is the easiest option going forward.
The code changes look more doable than patching sluice.

Thanks :)

best,

werdahias

#1069621#67
Date:
2024-07-07 08:10:39 UTC
From:
To:
Quoting Matthias Geiger (2024-07-06 18:49:23)

I would ertainly be happy getting help with isahc, but I don't quite
understand what you are proposing concretely - how will patching isahc
also require an RM request?!?

Kind regards,

 - Jonas

#1069621#72
Date:
2024-07-07 09:21:07 UTC
From:
To:
On 07.07.24 10:10, Jonas Smedegaard wrote:
[...]
isahc requires sluice only for some pipe functionality in two files.
Since patching sluice proves to be hard I'd

opt to patch isahc to use something like stdio::piped() rather than
sluice::pipe. Then I can file a RM request for sluice since it's not
used elsewhere and we can finish this transition.

best,

werdahias

#1069621#77
Date:
2024-07-08 16:45:09 UTC
From:
To:
Quoting Matthias Geiger (2024-07-07 11:21:07)

Makes great sense.

 - Jonas

#1069621#82
Date:
2024-07-08 18:02:39 UTC
From:
To:
I attached my wip for using os_pipe instead of sluice. Still has four
errors atm; I'd appreciate some knowledgable people looking into it
(CC'd ncts). I do not have any more time atm to sink into this; will
pick it up later unless someone beats me to it.

best,

werdahias

#1069621#87
Date:
2024-07-09 06:14:03 UTC
From:
To:
The errors came from the fact that os_pipe is sync, while isahc is async. I've
implemented a simple wrapper for the pipe reader & writer; rather long, thus put
in a fork: https://salsa.debian.org/ncts/rust-isahc/-/commits/replace-sluice.

Note that os_pipe can fail, thus two `todo!()`s. OTOH, sluice returns directly
the pipe, without wrapping in Result, so I think there is space for improvement.

#1069621#92
Date:
2024-07-13 15:25:06 UTC
From:
To:
Blair,


thanks for this. Jonas, with this patch at hand, are you ok if I file a
RM request for sluice then ?

isahc is RC-buggy anyway and would need an additional aptch for polling 2.x.

I updated all relevant crates for the Rust team (including zbus and all
rdeps). Once sluice is removed I'd suggest we flip the switch then.


best,

werdahias

#1069621#97
Date:
2024-07-13 15:48:41 UTC
From:
To:
Quoting Matthias Geiger (2024-07-13 17:25:06)

Fine with me to then flip the switch *now*, as we can fix isahc/sluic in
parallel the the pile of involved packages entering unstable.

Are you ok with flipping the switch *now*?

 - Jonas

#1069621#102
Date:
2024-07-13 15:52:09 UTC
From:
To:
I need to build netavark with zbus 4.0 and ask siretart if it's ok; then
we can do this. I will look into netavark today; maybe we can upload
everything Sunday morning then ?

best,

werdahias

#1069621#107
Date:
2024-07-13 16:25:40 UTC
From:
To:
Quoting Matthias Geiger (2024-07-13 17:52:09)
when that action is done (not at some timeslot).

Or whatever: I am ready, just tell you are ready as well.

 - Jonas

#1069621#112
Date:
2024-07-13 16:37:42 UTC
From:
To:
If you weren't aware, https://github.com/containers/netavark/pull/1025 may help
you speed up a bit.

#1069621#117
Date:
2024-07-14 12:23:31 UTC
From:
To:
netavark has been patched; this means we can go ahead from my end.


best,


werdahias

#1069621#122
Date:
2024-07-14 13:00:52 UTC
From:
To:
Quoting Matthias Geiger (2024-07-14 14:23:31)

Great. Going ahead now!

 - Jonas

#1069621#127
Date:
2024-07-14 13:47:57 UTC
From:
To:
event-listener v5 should now be available at http://incoming.debian.org/
which should be adequate for releasing event-listener-strategy.

I cannot do more until that is done:

DONE in unstable, but awaits testing:

* event-listener v5
  * involves branch transition: v2 -> v5
  * needs to succeed build-time testsuite and autopkgtest

READY for unstable, but awaits event-listener-strategy

* async-channel v2
  * involves branch transition: v1 -> v2
  * accepts event-listener v5
    (via event-listener-strategy)
  * succeeds build-time testsuite in experimental
  * awaits event-listener v5
  * awaits event-listener-strategy
* async-lock v3
  * involves branch transition: v2 -> v3
  * accepts event-listener v5
  * succeeds build-time testsuite in experimental
  * awaits event-listener-strategy

READY for unstable, but awaits async-channel

* async-process v2
  * involves branch transition: v1 -> v2
  * accepts async-channel v2
  * accepts async-lock v2+3
  * accepts event-listener v5
  * succeeds build-time testsuite in experimental
  * awaits async-channel v2
  * awaits event-listener v5

READY for unstable, but awaits async-process

* smol v2
  * involves branch transition: v1 -> v2
  * accepts async-channel v1+2
  * accepts async-fs v1+2
  * accepts async-lock v3
  * succeeds build-time testsuite in experimental
  * awaits async-lock v3
  * awaits async-process v2

UNKNOWN (needs custom testing):

* async-broadcast
  * involves branch transition: v0.5 -> v0.7
  * accepts event-listener v5 in experimental
* async-global-executor
  * needs to accept async-channel v2
    <https://bugs.debian.org/1074067>
    <https://bugs.debian.org/1074114>
  * needs to accept async-lock v3
* async-io
  * v2.3.3 accepts async-lock v3 in experimental
* async-mutex
  * v1.4.0 accepts event-listener v5 in experimental
* crosstermion
  * v0.14.0 accepts async-channel v2 in experimental, sloppily
* event-listener-strategy
  * v0.5.2 accepts event-listener v5 in experimental
* fs4
  * needs to accept smol v2 at least in experimental
* gst-plugin-gtk4
  * needs to accept async-channel v2 at least in experimental
* sluice
  * needs to accept async-channel v2 at least in experimental
* sqlx-core
  * v0.7.3 accepts event-listener v5 in experimental
* zbus
  * needs to accept event-listener v5

BROKEN for different reasons

* isahc
  * needs to accept async-channel v2
  * needs to accept event-listener v5
  * broken

 - Jonas

#1069621#132
Date:
2024-07-14 14:08:59 UTC
From:
To:
I just uploaded everything (including event-listener-strategy) to
unstable with nocheck, including zbus and rdeps.

I should have got all relevant packages. Most already have been accepted
and will be built once their respective deps are available.

best,


werdahias

#1069621#137
Date:
2024-07-14 23:03:27 UTC
From:
To:
By the way, rust-event-listener's autopkgtest is failing in Unstable
now, which is why I originally filed this bug.

https://tracker.debian.org/pkg/rust-event-listener

Jeremy

#1069621#142
Date:
2024-07-15 06:01:11 UTC
From:
To:
Quoting Jeremy Bícha (2024-07-15 01:03:27)

In future, it would be helpful if you could please elaborate a bit:
Reporting "it fails" and then a month later "it fails again" make it
sound like "ahaaaa, there's a pattern there" when really there is too
little to correlate.

The cause for the old bug is likely gone by now, so I will close this
bugreport now.

If you suspect that the same bug which caused the original issue has
re-emerged, then please provide more detail about what happened back
then and now.

For treating this as a new independent issue, feel free to file a new
bugreport - but I suggest to wait a day before doing so, as I am on it
already, but that's your call.

Kind regards,

 - Jonas