1

I have setup a Python Robot Remote server on a RHEL 7.9 machine using docker.

I also have a client (i.e. Python Robot Framework on RHEL 8.4) with Robot keywords defined which calls the server however, when the server tries to send response to the client I always see an error i.e. OverflowError: int exceeds XML-RPC limits.

Wondering if someone has already seen this or aware of a mechanism (32 bit vs 64 bit, library versions, etc) to deal with this issue?

NOTE: I am using Python Pandas to process the response (which can be huge) initially I planned to process this at the client side however in order to circumvent the overflow issue I tried relocating data processing to the server however, I still run into the same issue if response contain lots of details (in case lots of test failure hence huge failure details object returned to the client).

JavaMan
  • 465
  • 1
  • 6
  • 21
  • 1
    most likely the value in the int field is bigger than the serializer supports out of the box for int values - see for example: https://www.techtalk7.com/xml-rpc-best-options-for-64-bit-ints/ – rasjani May 23 '22 at 07:53
  • 1
    Quick hack around the issue would be to use strings for all datatypes and handle the conversion in your own code from string to the expected data type .. – rasjani May 23 '22 at 07:53
  • Also, afaik, this is not robot remote server limitation but xml-rpc one – rasjani May 23 '22 at 07:54
  • Thanks a lot rasjani. The message started flowing once I stringified them and were received at client. Also with regards to your first comment, I noticed that the int offender may be the Kafka offset value which was set to value greater than the int range which may actually be causing the overflow. However, for a time being string conversion seems to be working well. Thanks once again. Cheers – JavaMan May 25 '22 at 10:45
  • A quick point - do you think, we may also run out of rope when it comes to transferring as sting if the json response is indeed huge i.e. something which can test XML RPC limits again? – JavaMan May 25 '22 at 10:46
  • Could you please also answer (if you wish) my original question, so that I can accept it as an answer? – JavaMan May 25 '22 at 10:48
  • added "answer" .. I've been passing screenshots full hd desktop as mime64 encoded data between remote and local robot instance so, bigger payload should not be a problem unless you go for something really really big – rasjani May 25 '22 at 11:17

1 Answers1

1

Most likely issue here is the "serializer" in xml-rpc package which has limits on how big values can be passed around as mentioned here: https://www.techtalk7.com/xml-rpc-best-options-for-64-bit-ints/

rasjani
  • 7,372
  • 4
  • 22
  • 35