-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
randomly failures when using Erratum to fetch rpmdiff test results for advisories #185
Comments
this seems to be an issue that kerberos authentication is not being recognized. try running klist to see if you have a valid ticket. |
Maybe we should change that error message to suggest what you suggested: "klist" |
I have reason to believe it is related to the ssl verification. Verifying it. |
If it was an SSL problem, you should have seen an SSLException from python-requests. The code is here: elif ret_data.status_code in [401]:
raise ErrataException(
'Pigeon crap. Did it forget to run kinit?') It looks to me like the SSL handshake completed, and you got a real HTTP response code from the server. |
@ktdreyer I see your point. The program which uses it, is running in a mock environment. I have difficulties to debug it. Replacing the usage of errata_tool with the errata REST API just to verify it. |
Would you please say more about the mock environment? |
Thanks lioramilbaum for talking with me and providing more details for this bug report. Updated summary of failure. The script/usage would work most of the time but randomly it would fail and spit out the above error message. Based on the behavior I think we can rule out krb auth and certs being there as the primary failure cause. I think there is likely an edge case that is being caught by errata-tool and reporting just one failure mode back. The code being substituted in is something like the following:
Which is replacing the following from their existing working code:
An initial guess is that ET is getting overloaded with extra calls that Erratum init method is doing to prep the object upfront when the only thing you are really wanting to process at this point is the external test results. |
It is really weird that the ET would be giving a 401 status code. @lioramilbaum can you break up that Like you can make your res = requests.get( .../v1/external_tests/?filter....)
res.raise_for_status() # If we get an HTTP 401, we will raise here
json_result = res.json()
data = json_result['data']
results = [result for result in data ... ] |
Also, with the |
what you have is essentially what is already there and it works. I think the issue might be the extra overhead that Setting up the Erratum object adds to ET but not certain. We need to look closer and likely instrument up a test case for this to figure out the issue. |
Yeah, I would like to confirm in particular that this truly is a |
@lioramilbaum , a while ago we talked IRC about Kerberos. You had a Jenkins job that was wrapping some calls in |
@ktdreyer We wrap the Jenkins job script with the function - 'withKrbAuth'. Have you noticed issues with this function in particular? |
That was just wild speculation - I'm not familiar with Groovy or |
Every once in a while, hitting this message. It is not consistent. No clear understanding what is going on and how to troubleshoot it.
This is the stacks-trace:
The text was updated successfully, but these errors were encountered: