Closed jradcliff closed 10 years ago
Reached out to the author of this issue but have not heard back in a few days, and I cannot find evidence of any errors in the recent past for the developer token mentioned.
Please reopen if you are still seeing this error.
Reported by emailgrant, Nov 17, 2012
What steps will reproduce the problem?
What is the expected output? What do you see instead? I'm getting the following error pretty consistently but at seemingly random times:
Error sending / receiving message: at /usr/lib64/perl5/vendor_perl/5.12.4/Google/Ads/AdWords/Deserializer.pm line 111
What version of the product are you using? On what operating system?
I'm using 2.7.3 on Gentoo Linux.
Please provide any additional information below.
Nov 18, 2012 #3 emailgrant I also tried 2.7.4 and the result was the same. I should also mention that I have:
$client->set_die_on_faults(0);
and that this never happened on 2.6.1/201109_1 and previous versions even with a lot of use. Nov 19, 2012 #4 david.t+mail@google.com I'll be glad to take a look at the issue, but I'd need a bit of more information to replicate.
Unfortunately the generate_fault subroutine (Deserializer.pm line 111) is called very generically by the SOAP::WSDL toolkit when an unexpected error has occurred and it doesn't really gives me much information on what the cause could be.
Do you happen to keep SOAP logs?
Do you know what specific request is failing?
Are you getting any response logged in the logs when the error occurs?
Do you happen to have any network issues logged in the os syslogs around the same time? I'm pointing to network issues because it seems to me these are low level errors.
Have you recently re-installed the dependencies of the library (SOAP-WSDL, IO::Socket::SSL, LWP::UserAgent)?
Any other information you happen to have will greatly help me. Nov 19, 2012 #5 emailgrant I log $log_response from my code below, but the failure always happens before it is logged so I get the request in the log but not the response. I log SOAP responses but the requests I log are from my higher-level code instead of SOAP. I can set up another type of SOAP logging if necessary. If so, please point me to info on setting that up.
It always seems to be this code that fails:
However, that code is called much more frequently than any other code, so my guess is it's not related to that code specifically.
I don't think it's a network issue because:
The only perl module I've reinstalled since October 26th when my 201109_1 calls started failing was upgrading CHI from 0.550.0 to 0.560.0. I rolled it back to 0.550.0 yesterday with the same result. Nov 20, 2012 #6 david.t+mail@google.com The library has a built-in mechanism to log request and responses from the API:
use Google::Ads::AdWords::Logging::enable_soap_logging();
if you want to know more about logging in the lib read the "How do I enable logging?" in the README file.
Is this issue always happening when calling the AdGroupCriterionService? what is your selector? what account CID are your calls targeting? can you paste sanitized (no dev token, no auth info) of a sample request that have failed? could you modify the Deserializer class and dump the $args in the generate_fault sub?
Sorry for all the questions but I need to be able to reproduce the error in my side. Nov 20, 2012 #7 emailgrant Can you tell me what to change in the generate_fault sub in order to get what you need? Can you get it to dump the SOAP request and response?
Here's the selector, but I should mention that my script picks up where it left off. So it tried to use the selector below, it failed with the error we're working on, then when I ran the script again it tried the same selector again and succeeded. My log confirms this.
I'd rather not post the account CID publicly. If you need it, could you give me an email address or other method of getting it to you?
Isn't this likely Google sporadically sending some sort of invalid non-SOAP (maybe blank) response? Nov 28, 2012 #8 emailgrant Can you tell me how you'd like me to change that generate_fault sub? Nov 30, 2012 #9 emailgrant I was seeing the error about once per hour before, but for the last 4 days my scripts have run to completion for about 8 hours each day without seeing the error. Do you know if anything changed on Google's end? I'd like to keep monitoring this for a little while before we close the issue if that's OK with you. Nov 30, 2012 #10 david.t+mail@google.com Nothing has changed in our side, I really believe this is a network issue and not related with the API.
Let me know if you feel I can close this issue. Nov 30, 2012 #11 emailgrant In case it was a network issue, did anything change in the API in the last several versions as far as timeout settings, or can you tell me where I can change those sort of settings in case it happens again? Dec 2, 2012 #12 emailgrant I've gotten the error again yesterday and today unfortunately. Can you tell me what you need in order to determine what is happening? Dec 4, 2012 #13 david.t+mail@google.com Can you tell me what is the MCC id that holds you developer token and around which time (as exact as possible) with timezone you saw the errors? I want to look in our logs and see if we are at least seeing the calls in our side. Dec 4, 2012 #14 emailgrant Thanks a lot David. The MCC is 718-316-3727 and here are the last 4 times (in PST) at which the error occurred:
04/December/2012:10:51:16 03/December/2012:09:11:34 02/December/2012:08:51:26 01/December/2012:09:26:45
The requests and responses happen quickly and there are usually about 2 request/response pairs per second. The last requestId I received today (Dec. 4th) from Google in their response was 0004d00b59c526a80ae7fa52000020f2. The next request I made failed with the Deserializer error. Dec 11, 2012 #15 emailgrant Hi David, have you had a chance to take a look? Could 2.7.5 fix this? Dec 27, 2012 #16 emailgrant Could you take a look? I can provide fresh info if needed.