Skip to content
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

Utilize Standalone Proxy #21129

Closed
scbedd opened this issue Jul 11, 2023 · 0 comments · Fixed by #21168
Closed

Utilize Standalone Proxy #21129

scbedd opened this issue Jul 11, 2023 · 0 comments · Fixed by #21168
Assignees
Labels
blocking-release Blocks release Central-EngSys This issue is owned by the Engineering System team. EngSys This issue is impacting the engineering system.

Comments

@scbedd
Copy link
Member

scbedd commented Jul 11, 2023

Context

This issue is actually prompted by what the real solution to this other discussion that I was having with @gracewilcox and @benbp .

FIrst, some backstory. @gracewilcox was seeing some really wonky errors in the azadmin build. She mentioned that this also occurred in azfile and azblob. These issues started June 28th, the same day that I touched the test-proxy version. This immediately makes me suspect the proxy is the source of the problems, so I did a bit of digging.

Turns out, the test-proxy fix did introduce this * is not a valid pathspec item. It's because we made the proxy aware of what had already been checked out. If the proxy already has a targeted tag checked out, it will invoke a clean operation prior to restoring that tag. This clean operation is what was failing, and is the reason for the proxy changed, error began.

Given that we're in the middle of the release week, I tried an alternative that merely removes the possibility of a race condition.

After I added this, azadmin continued failing. This new failure revolves around the fact that azadmin is actually multiple packages, and as such has multiple test suites. Given there is a single proxy running for all of these packages, and each test-suite has no idea about the others, it is easy for them to stomp on each other. In this case, the new error is because as each test suite in the azadmin module finishes, it fires an Admin/Reset to clear out any of its customizations. Given that there are 4 test suites running, there is a VERY high chance that when test suite A fires Admin/Reset, test suite B is still running a test. When this happens, the test-proxy rightfully kicks back the reset with 400, as once can't change a session level sanitizer while a playback is happening.

The part that I'm still scratching my head at is why we haven't seen this at all prior to June 28th. I'd definitely expect there to be consistent failures given this.

I spoke to @gracewilcox about this not reproing locally, and the reasoning there is because given that these are different packages they are never run locally as a single unit like they are in CI!

Why do we see this new error? This is one piece of data that I don't understand.

Prospective Solution

I think that the test-suite should swap to the standalone test-proxy, and utilize either a dynamic port or a configured port/protocol for each test suite.

At the beginning of each test suite, the proxy should be downloaded to .proxy at repo root, then utilized from there. If each test suite uses it's own proxy and port, then a session-level sanitizer CANNOT stomp on another test run. They'll be totally split from each other!

@github-actions github-actions bot added the needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. label Jul 11, 2023
@jhendrixMSFT jhendrixMSFT added EngSys This issue is impacting the engineering system. and removed needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. labels Jul 12, 2023
@RickWinter RickWinter added the blocking-release Blocks release label Jul 12, 2023
@benbp benbp self-assigned this Jul 19, 2023
@benbp benbp added the Central-EngSys This issue is owned by the Engineering System team. label Jul 19, 2023
@benbp benbp moved this from 🤔 Triage to 🔬 Dev in PR in Azure SDK EngSys 🤖🧠 Jul 19, 2023
@github-project-automation github-project-automation bot moved this from 🔬 Dev in PR to 🎊 Closed in Azure SDK EngSys 🤖🧠 Jul 27, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Oct 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
blocking-release Blocks release Central-EngSys This issue is owned by the Engineering System team. EngSys This issue is impacting the engineering system.
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

4 participants