-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
The Selenium Grid Scaler incorrectly scales Linux pods when Windows nodes are present in the cluster. #4908
Comments
Hello, |
I also noticed that this is somehow related to the number of Linux nodes. Currently, when I left only 2 Windows nodes and one Linux node in the cluster, the behavior changed: 7 requests and 2 new pods were created. Prior to this, the cluster composition was as follows: 2 Windows nodes and 4 Linux nodes. logs:
|
@JorTurFer I've got more log's & i think the trouble is not in selenium. GraphQL before test:
GraphQL during the test:
keda logs:
|
@Wolfe1 , you are the biggest selenium expert I know :) |
@JorTurFer @Doofus100500 query={ grid { maxSession, nodeCount }, sessionsInfo { sessionQueueRequests, sessions { id, capabilities, nodeId } } } To get our maxSession (count), nodeCount, and the sessionQueueCount. The session queue tells us what type it is based on the capabilities but we only have raw counts for maxSession and nodeCount:
Now if we wanted to get this information we would need to change the way we do our calculations to use something like: query={ grid { maxSession, nodeCount,sessionCount, totalSlots}, sessionsInfo { sessionQueueRequests, sessions { id, capabilities, nodeId } } ,nodesInfo {nodes {stereotypes}} } This would give us a new section that looks like so:
Which would give us a count of nodes, how many slots they have, browser version, and most importantly here, the platform name. If we went this way we wouldn't need to use max sessions or nodeCount as we could get it from this list and only count the items that fit our trigger. |
In your experience, which is the best option? Could this missing info justify the different behaviour if there are or there aren't windows nodes present in the cluster? |
I believe so, I see two issues at a glance:
|
Nice research ❤️ If I'm wrong and we need the change (which it's probably the case), would you be willing to implement it? |
@JorTurFer We would use the platformName parameter but currently that is not being used to filter down the items returned for nodeCount and maxSessions count (because the current data does not have that information to filter, its just a number with no sterotypes). I am willing to implement it but not sure when I will find time at the moment. You can go ahead and assign me to the issue though and I will try to get to it soon. |
Sure, no rush at all, you are doing a great job with awesome contributions, thanks! ❤️ |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions. |
Still plan to get to this eventually 🐌 |
@Wolfe1 Hello, is there a tentative forecast for when you will be able to address this issue? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions. |
@Wolfe1 hi, is there any chance that you can address this issue in the near future? |
This issue has been automatically closed due to inactivity. |
@Wolfe1 hi, is there any chance that you can address this issue in the near future? |
@Doofus100500 Apologies but work and a baby on the way have had me distracted. Mix that with me having issues getting my local running...I just can not dedicate time to working on this. |
Report
When there are no Windows nodes in the cluster, the deployment of the requested browser scales to a number equal to the quantity of tests. However, as soon as Windows nodes appear, scaling occurs to a number equal to the quantity of tests minus the number of Windows nodes. This is regardless of the browser versions.
Example:
No Windows nodes in the cluster: Request 7, 7 new pod's.
Windows nodes present in the cluster (2 in total): Request 7, 5 new pod's.
Expected Behavior
Request 7, 7 new pod's.
Actual Behavior
Request 7, 5 new pod's.
Steps to Reproduce the Problem
Logs from KEDA operator
KEDA Version
2.11.1
Kubernetes Version
1.23
Platform
Other
Scaler Details
Selenium Grid Scaler
Anything else?
Windows node
The text was updated successfully, but these errors were encountered: