jupyterhub / kubespawner

Kubernetes spawner for JupyterHub
https://jupyterhub-kubespawner.readthedocs.io
BSD 3-Clause "New" or "Revised" License
536 stars 301 forks source link

[Bug] Setting `unlisted_choice` a second time has no effect #772

Closed GeorgianaElena closed 10 months ago

GeorgianaElena commented 10 months ago

Bug description

Multiple usages of the "Other" option choice through unlisted_choice, result in the same first user-introduced option to be used. If another preset option choice is used, that works.

This was initially reported and tracked by https://github.com/2i2c-org/infrastructure/issues/2887 and and attempt to fix this was done in https://github.com/jupyterhub/kubespawner/pull/766.

Expected behaviour

Every time a new profile option is specified through unlisted_choice, it would override whatever it was before.

Actual behaviour

Only the first time it works, then whatever it set afterwards, it just gets ignored.

How to reproduce

GeorgianaElena commented 10 months ago

@consideRatio's comment in https://github.com/jupyterhub/kubespawner/issues/758#issuecomment-1697064821 is related to this bug

consideRatio commented 10 months ago

Hmmm I've not been able to reproduce this (local k3s, jh 4.0.2 or latest) after a lot of trying. When I try, everything instead works as expected.

GeorgianaElena commented 10 months ago

After more digging, the conclusion is that this particular bug wasn't actually in kubespawner, but in the the code that defined the profile_list function that was used.

https://github.com/jupyterhub/kubespawner/pull/766 could only ensure that it didn't modified the originalprofile_list itself, but had no control or effect over a callable profile_list that was also modifying the profile_list by mistake.

Same bug, different places. I will clouse this issue now, since there is nothing to do on the kubespawner side.