-
Notifications
You must be signed in to change notification settings - Fork 337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrong case requests lead to packages resolved twice with different versions #685
Labels
os:windows
Windows-specific
Comments
Ha that's a pretty odd bug. It's going to be difficult for me to track this
one down as I'm not on Windows.
In terms of correct behaviour, I would expect rez to remain case sensitive
on Windows. I would make a bet that in the filesystem-type package
repository, there are place(s) where os.path.exists (or similar) is being
used to verify a package's existence. We probably just need to move this to
a utility function that also validates matching case when on Windows, which
should then trigger a package-not-exists exception on case mismatch.
Could you put in a ticket for this?
Cheers
A
…On Thu, Aug 1, 2019 at 7:58 PM Thorsten Kaufmann ***@***.***> wrote:
Please excuse the weird subject line, but i had a hard time finding a
one-liner for this one.
It's windows only and most likely has to do with the fact that on windows
file systems are not case sensitive. This causes an issue if someone
requests a package with wrong case. That makes Rez see the package but the
solver seems to interpret them as two different packages resulting in cases
where the same package is resolved twice with potentially different
versions.
Example:
We have a 3dsmax package and a maxtools package. The maxtools package
requires the 3dsmax package. A correct request could be: rez-env
3dsmax-2018 maxtools and yields the expected result:
$ rez-env 3dsmax-2018 maxtools
INFO:__main__:Launching rez-env(rez_meta-0.5.7, rez-2.37.0, rez_config-0.4.3)
resolved by ***@***.***, on Thu Aug 01 11:55:14 2019, using Rez v2.37.0
requested packages:
3dsmax-2018
maxtools
~platform==windows (implicit)
~arch==AMD64 (implicit)
~os==windows-10 (implicit)
resolved packages:
3dsmax-2018 \\data\rez-package-staging\3dsmax\2018\platform-windows\arch-AMD64
Qt.py-1.2.1 \\data\rez-package-staging\Qt.py\1.2.1\ff5a17a870e473adea6d65972631222d54a381e6
arch-AMD64 \\data\rez-package-staging\arch\AMD64
iniparse-0.4 \\data\rez-package-staging\iniparse\0.4\python-2.7
maxtools-3.0.5 \\data\rez-package-staging\maxtools\3.0.5\platform-windows\arch-AMD64
platform-windows \\data\rez-package-staging\platform\windows
python-2.7.16 C:\ProgramData\Mackevision\rez_packages_local_staging\python\2.7.16\platform-windows\arch-AMD64
xlrd-1.2.0 \\data\rez-package-staging\xlrd\1.2.0\platform-windows\arch-AMD64\python-2.7
Now if someone requests with a different case than the actual package than
both (the one created by maxtools' requires and the actually requested one)
get added as different packages and resolve to different versions each
pointing to the same package: rez-env 3dsMax-2018 maxtools (note the case
change in 3dsmax)
$ rez-env 3dsMax-2018 maxtools
INFO:__main__:Launching rez-env(rez_meta-0.5.7, rez-2.37.0, rez_config-0.4.3)
resolved by ***@***.***, on Thu Aug 01 11:56:47 2019, using Rez v2.37.0
requested packages:
3dsMax-2018
maxtools
~platform==windows (implicit)
~arch==AMD64 (implicit)
~os==windows-10 (implicit)
resolved packages:
3dsMax-2018 \\data\rez-package-staging\3dsMax\2018\platform-windows\arch-AMD64
3dsmax-2021 \\data\rez-package-staging\3dsmax\2021\platform-windows\arch-AMD64
Qt.py-1.2.1 \\data\rez-package-staging\Qt.py\1.2.1\ff5a17a870e473adea6d65972631222d54a381e6
arch-AMD64 \\data\rez-package-staging\arch\AMD64
iniparse-0.4 \\data\rez-package-staging\iniparse\0.4\python-2.7
maxtools-3.0.5 \\data\rez-package-staging\maxtools\3.0.5\platform-windows\arch-AMD64
platform-windows \\data\rez-package-staging\platform\windows
python-2.7.16 C:\ProgramData\Mackevision\rez_packages_local_staging\python\2.7.16\platform-windows\arch-AMD64
xlrd-1.2.0 \\data\rez-package-staging\xlrd\1.2.0\platform-windows\arch-AMD64\python-2.7
We need to investigate properly why this occurs and what the best way (and
place in Rez) to prevent this is.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#685>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAMOUSU774FR5K7OFHX7IQDQCKXT7ANCNFSM4IIO55QA>
.
|
That's what i was thinking and we can take care of this. I had intended this ticket to also be the ticket for the fix. Do you prefer a separate ticket? |
Just the one is fine!
thx
A
…On Tue, Aug 6, 2019 at 5:04 PM Thorsten Kaufmann ***@***.***> wrote:
That's what i was thinking and we can take care of this. I had intended
this ticket to also be the ticket for the fix. Do you prefer a separate
ticket?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#685>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAMOUSQFOIRIAVPCK4IIPYTQDEPBNANCNFSM4IIO55QA>
.
|
Hello Allan, just a heads up, I will be looking into the issue and referring back to this ticket in the upcoming PR 👍 |
Nice one, cheers
A
…On Wed, Aug 7, 2019 at 3:33 PM Ira ***@***.***> wrote:
Hello Allan, just a heads up, I will be looking into the issue and
referring back to this ticket in the upcoming PR 👍
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#685>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAMOUSQHVMW3NYAZOV47UDLQDJNBHANCNFSM4IIO55QA>
.
|
1 task
Closed by #689 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Please excuse the weird subject line, but i had a hard time finding a one-liner for this one. Thanks to Dominic who discovered this one :)
It's windows only and most likely has to do with the fact that on windows file systems are not case sensitive. This causes an issue if someone requests a package with wrong case. That makes Rez see the package but the solver seems to interpret them as two different packages resulting in cases where the same package is resolved twice with potentially different versions.
Example:
We have a 3dsmax package and a maxtools package. The maxtools package requires the 3dsmax package. A correct request could be:
rez-env 3dsmax-2018 maxtools
and yields the expected result:Now if someone requests with a different case than the actual package than both (the one created by maxtools' requires and the actually requested one) get added as different packages and resolve to different versions each pointing to the same package:
rez-env 3dsMax-2018 maxtools
(note the case change in 3dsmax)We need to investigate properly why this occurs and what the best way (and place in Rez) to prevent this is.
The text was updated successfully, but these errors were encountered: