Python is requesting input

I’m unable to reproduce this error. :frowning: Is there anything else special you can think of about your computer/environment? Something I can try and replicate here.

Hm… not sure what it could be… I’ll have a look tonight for any clues
Thank you

If you are able to launch Maya “vanilla”, meaning without any PYTHONPATH or other plug-ins loading, and then load Ragdoll from there. That could help narrow things down.

Some differences in the terminal when loading maya with different ragdoll versions. Does this mean anything to you?

QObject::setParent: Cannot set parent, new parent is in a different thread
QWidget::setTabOrder: ‘first’ and ‘second’ must be in the same window
QObject::startTimer: Timers can only be used with threads started with QThread
QObject::startTimer: Timers cannot be started from another thread

Testing to see if I can run vanilla maya

Hm, yes that is interesting. Which version of Ragdoll did these occur with? Also which version of Maya are you using?

It happens with 2022_12_13 and 2022_12_05, maybe others before that but these are the ones I tested
Maya version is Maya 2020.4

Where you able to do a vanilla test?

Thanks for taking the time to help debug this, I know this sucks! Those threading things do seem suspicious and is something I’ll investigate in the morning. I may be able to provide something for you to run in the Script Editor that live-edits the code to bypass anything related to threading.

Here’s one thing you can try, before loading the plug-in.

import os
os.environ["RAGDOLL_LEGACY_GREETS"] = "Yes"

It should bypass the new Asset Library, and show you the old one instead. Which may or may not be related to the crash.

I haven’t been able to yet, I will try tomorrow
Thanks for the script, I will also try this!

Hi, I was able to test on vanilla maya 2020.4 (also 2020.3) but unfortunately it was the same dialogue box, even when using the code to bypass the new Asset Library.

However, it loaded well in maya 2022.0 with the latest Asset Library.
I tried deleting prefs, etc. To make sure there wasn’t anything happening there as launching 2022 created new prefs, but no luck.

Other than that, there were some messages in the terminal similar to yesterday-

QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?
QBasicTimer::stop: Failed. Possibly trying to stop from a different thread

Hmm, interesting. Can you try this as well, just like how you bypassed the asset library.

import os
os.environ["RAGDOLL_SKIP_INSTALL_ON_LOAD"] = "Yes"

And then load Ragdoll. I expect it would load correctly, except you won’t get the Ragdoll menu. If this works, then that’s a very good sign and something I can work with.

You should then be able to manually make the menu (and cause the error) like this.

from ragdoll import interactive
interactive.install()
# Bam!

Good news, I ran the code and it loaded correctly. Then imported interactive, the window came up and maya crashed as expected.

Fabulous, I now have some idea of where to look. I’ll investigate and have a fix for you shortly, thanks for jumping through these hoops!

1 Like

We’ve pushed a new release with two new environment variables it would be great if you can try. We think this was what caused the issue, but still have been unable to actually make it happen on any of our machines. So :crossed_fingers:

import os
os.environ["RAGDOLL_SINGLE_THREADED_QT"] = "Yes"
os.environ["RAGDOLL_SINGLE_THREADED_INTERNET"] = "Yes"

And then load the plug-in. More details here.

Thanks for this. I ran the script before loading “ragdoll.so”. There are no longer any of the “QObject::” errors in the terminal, however the dialogue box still came up.

This time there was a message in the script editor that reads “Enter username for Please enter your domain credentials to continue at proxy-a.*****.com:####:” -which is interesting - I enter my username.
Then the terminal asks for a the password. I input my password. It seems to be stuck here :confused:

It’s strange because it doesn’t happen with maya2022. Is it still ragdoll? Or should I invoke someone from tech to take a look?

Just for curiosity I also tried loading without running the script beforehand - The python window comes up. Errors in the terminal. I enter my username. Maya crashes.

Oh oh oh! A clue! So, this is interesting. Here’s what must be happening.

  1. Plug-in is loaded
  2. Plug-in asks for internet, to check for updates (it doesn’t yet know the computer is offline)
  3. Maya then attempts to connect on behalf of the plug-in
  4. The OS then attempts to connect on behalf of Maya
  5. The OS says “you can, but there’s a proxy with a password”
  6. Maya 2020 doesn’t know how to handle this (but 2022 does), and dies a painful death

To prove this theory is correct, then here’s something you can try, without Ragdoll:

try:
    from urllib import request
except ImportError:
    import urllib as request  # py2

request.urlopen("https://google.com")
# Bam!
1 Like

Ha ha! Success
:slight_smile: I’m very happy thank you

I can make you happier, once I make Ragdoll not crash for you. :slight_smile: This internet request is non-essential, we only use it to check for updates in the Asset Library. I’ll make a new release with another flag to bypass this altogether for situations like yours. Thanks for jumping through these hoops and helping us find this bug! :partying_face:

1 Like

Alright, we’ve added one more flag to completely bypass any use of urllib which apparently Maya has trouble with when the active network is running under a proxy.

Ragdoll 2022.12.20

import os
os.environ["RAGDOLL_SKIP_UPDATE_CHECK"] = "Yep"

Let me know how it goes!

Works like a charm. The python window no longer appears when loading Ragdoll.
Thank you!

1 Like