vmware / container-service-extension

Container Service for VMware vCloud Director
https://vmware.github.io/container-service-extension
Other
78 stars 52 forks source link

"Error: maximum recursion depth exceeded" when running Python 3.8.2 #577

Open mann1mal opened 4 years ago

mann1mal commented 4 years ago

Saw a ping from @jondwaite in the VCPP community slack channel regarding an issue accessing CSE (2.6.0) via the vcd-cli. I set up a quick reproducer and was able to see the same behavior.

Running Python 3.8.2 in a virtualenv for testing on both client and server.

From the server:

$ python -V
Python 3.8.2

$ cse version
CSE, Container Service Extension for VMware vCloud Director, version 2.6.0

cse run against the config file runs as expected:

$ cse run -c config-260.yaml -p pks-config.yaml --skip-config-decryption
Installed Python version: 3.8.2 (default, Apr 29 2020, 09:55:29) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
Validating config file 'config-260.yaml'
---output omitted---
CSE installation is valid
Started thread 'MessageConsumer-0 (140614775097088)'
Started thread 'MessageConsumer-1 (140614544914176)'
Started thread 'MessageConsumer-2 (140614758311680)'
Started thread 'MessageConsumer-3 (140614766704384)'
Started thread 'MessageConsumer-4 (140614536521472)'
Container Service Extension for vCloud Director
Server running using config file: config-260.yaml
Log files: cse-logs/cse-server-info.log, cse-logs/cse-server-debug.log
waiting for requests (ctrl+c to close)

Now when testing vcd cse commands from a client:

# python -V
Python 3.8.2

# cse version
CSE, Container Service Extension for VMware vCloud Director, version 2.6.0

# vcd cse system info
Usage: vcd cse system info [OPTIONS]
Try 'vcd cse system info -h' for help.

Error: maximum recursion depth exceeded

# vcd cse cluster list
Usage: vcd cse cluster list [OPTIONS]
Try 'vcd cse cluster list -h' for help.

Error: maximum recursion depth exceeded

Jon mentioned that this might be the issue: https://github.com/pika/pika/pull/1254/files

If that is indeed the case, we should update the documentation to be more specific about "supported" Python versions.

mann1mal commented 4 years ago

Quick update, I was able to run vcd cse commands succesfully with the cse server running Python 3.7.3 and the client running 3.8.2:

# python -V
Python 3.8.2

# vcd cse cluster list
name           vdc                status            org_name      k8s_version    k8s_provider
-------------  -----------------  ----------------  ------------  -------------  --------------
routed-test    cse-standard-ovdc  POWERED_ON        cse-demo-org  1.17.2         native
vcpp-standard  cse-standard-ovdc  POWERED_ON        cse-demo-org  1.17.2         native
vcpp-pks       cse-ent-ovdc       create succeeded  cse-demo-org  1.16.7         ent-pks
rocknes commented 4 years ago

This is an issue with pika (AMQP library that CSE uses). I think we have answered with the same reply on the community post.

Regards Aritra Sen

jlarmstrong commented 4 years ago

It would be helpful if the answer could be added here as well. Since other people are sure to encounter the same problem.