DarkaOnLine / Ripcord

XML RPC client and server around PHP's xmlrpc library
33 stars 20 forks source link

XML-RPC doesn't support circular references #14

Open obuchmann opened 6 years ago

obuchmann commented 6 years ago

Getting this error: XML-RPC doesn't support circular references

The line hitting the error is

$request  = xmlrpc_encode_request( $name, $args, $this->_outputOptions );

I debugged it to

xmlrpc_encode_request('authenticate', $args, $options)

with: var_dump($args); is
array(4) { [0]=> string(10) "mydb" [1]=> string(5) "myuser" [2]=> string(32) "mypassword" [3]=> array(0) { } } 

and var_dump($options) is

array(5) { ["output_type"]=> string(3) "xml" ["verbosity"]=> string(6) "pretty" ["escaping"]=> array(1) { [0]=> string(6) "markup" } ["version"]=> string(6) "xmlrpc" ["encoding"]=> string(5) "utf-8" }

so there is no circular References from my point of view

may you can help me understand whats going on here?

ctc87 commented 6 years ago

Hi i have the same problem and i see a lot of persons with the same problem. Have this library maintenance?

DarkaOnLine commented 6 years ago

PR is always welcome. Without data, I can not even try to reproduce this problem.

ctc87 commented 6 years ago

Thnks for your fast answer. We are using Odoo 10 server with PHP 5.6.3.1 with Apache 2.4.27 and framework of PHP Synfony 3.4. We have the problem randomly. Here have the same example of this problem. The problem with mutiple conectuions at the same time. the problem appears to a greater extent with simultaneous connections of several users. On the other hand the worst part of this problem is that it leaves the php service blocked and we need restart the service to repair it. If you need more information aswer me for it. When i have the issue today or tomorrow i send here the screenshoot.

ctc87 commented 6 years ago

THis is the Output of the error in PDF XML-RPC doesn't support circular references (500 Internal Server Error).pdf

Gerardlc commented 5 years ago

THis is the Output of the error in PDF XML-RPC doesn't support circular references (500 Internal Server Error).pdf

Did you find a solution? I have the same problem and is so random..

ctc87 commented 5 years ago

Hi the final solution was change to ok version of PHP 5

El jue., 4 abr. 2019 16:55, Gerard notifications@github.com escribió:

THis is the Output of the error in PDF XML-RPC doesn't support circular references (500 Internal Server Error).pdf https://github.com/DarkaOnLine/Ripcord/files/2495704/XML-RPC.doesn.t.support.circular.references.500.Internal.Server.Error.pdf

Did you find a solution? I have the same problem and is so random..

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DarkaOnLine/Ripcord/issues/14#issuecomment-479956839, or mute the thread https://github.com/notifications/unsubscribe-auth/AKOfNkX3L1jkAxLiORgCwGrfbYe-eCVjks5vdiB6gaJpZM4VMe_V .

ctc87 commented 5 years ago

Old version sorry.

ctc87 commented 5 years ago

Final the problem it's about that PHP version and the library it's not so ok. I think finally I have the 7 PHP version and change it to 5. And I think this works.

trevorreiter commented 5 years ago

We were also seeing the XML-RPC circular references error, and as best I can track it down it seems to be an issue with PHP 7's xmlrpc_encode_request(). We are using Nginx, and when we set the PHP-FPM process manager to "ondemand" the errors appear to have stopped. I noticed that if a php process stayed in memory for a long enough time, it would hit the Circular Reference error. I believe that the ondemand process manager, by only forking a process when needed, prevents any one PHP process from getting old and corrupted enough to trigger the error.

davidglezz commented 4 years ago

I have solved it by calling the function opcache_reset(); periodically

Temporary solution:

  1. Call opcache_invalidate() in the proper script file.
  2. Catch the error and call the function as a temporary solution. Then retry.

I have PHP 7.1, with php 7.2 this problem could be solved https://bugs.php.net/bug.php?id=74975

sabersaberi2 commented 4 years ago

I have solved it by calling the function opcache_reset(); periodically

Temporary solution:

  1. Call opcache_invalidate() in the proper script file.
  2. Catch the error and call the function as a temporary solution. Then retry.

I have PHP 7.1, with php 7.2 this problem could be solved https://bugs.php.net/bug.php?id=74975

it is good way to resolve my problem and it work.