At the moment, no pipelines are created without any notifications of what could have gone wrong when these conditions are met:
There is a needs relations between two jobs
The parent job has a matrix (a parallel job)
The total number of characters of the expanded parent job name exceeds 128.
Proposal
The proposal here is to increase Ci::BuildNeed's name limit to 255 (which matches the job name limit).
NOTE: Since the ci_build_needs.name column is already TEXT, the only thing that needs to be updated is the value of the MAX_JOB_NAME_LENGTH constant from 128 to 255.
Additional details
Some relevant technical details, if applicable, such as:
@marknuzzo I'm not sure if the proposal in this issue makes sense. There isn't a direct limit on "matrix variables". The limit on those variable values depend on the overall length of the parallel job's name after it's expanded. I think this is explained more clearly in the background context and screenshot examples here: !129326 (merged).
I think the goal of this issue should just be to increase Ci::BuildNeed's name limit to 255 (which matches the job name limit). And this would be a backend-weight1 because the ci_build_needs table's name column is already a TEXT type. The only thing that needs to be updated is the value of the MAX_JOB_NAME_LENGTH constant from 128 to 255.
@marknuzzo To clarify, I think this issue should be titled something like "Make the name limit of Ci::BuildNeed match the job name limit" and backend-weight1.
Thanks @marknuzzo! I've updated this issue to workflowready for development. I don't think there should be any consequences of increasing the name limit, but the engineer who picks up this issue would have to confirm.
@marknuzzo@lma-git Maybe, we should also add this 255-character limit to the job names because currently, we get an error when you try to create jobs that have names more than 255 characters.
build:script:exit 0parallel:matrix:-VAR1:[this-is-a-long-long-long-long-long-long-long-value1]VAR2:[this-is-a-long-long-long-long-long-long-long-long-value2]VAR3:[this-is-a-long-long-long-long-long-long-long-long-long-value3]VAR4:[this-is-a-long-long-long-long-long-long-long-long-long-long-value4]VAR5:[this-is-a-long-long-long-long-long-long-long-long-long-long-value5]# <-- just added
In !129326 (diffs), I added validation on the needed job name. However, you're correct that it doesn't address expanded parallel job names that aren't needed.
I think that once the needed job name limit is updated in this issue (from 128 to 255), we should additionally move the validation out from being specifically checking needed jobs to checking the expanded job names in general.
I will update this issue with the new proposal and weight accordingly. cc: @marknuzzo
@furkanayhan Ah actually I was originally thinking the same thing but felt it would be minimal enough to keep in the same issue. But now that I think about it again, it's easier to track the changes with separate issues.
Mark Nuzzochanged title from Backend: Make the character limits in matrix variables match to Backend: Make the name limit of Ci::BuildNeed match the job name limit
changed title from Backend: Make the character limits in matrix variables match to Backend: Make the name limit of Ci::BuildNeed match the job name limit
This grouppipeline authoring bug has at most 50% of the SLO duration remaining and is an SLONear Miss breach. Please consider taking action before this becomes an SLOMissed in 29 days (2023-09-30).
Due to other security focuses for earlier due dates, this issue will miss SLO but now that this issue is weighted, it will be focused on in %16.6 next month and has been added to the %16.6 planning issue focus.
Leaminn Machanged title from Backend: Make the name limit of Ci::BuildNeed match the job name limit to Backend: Increase Ci::BuildNeed job name limit to 255 and update expanded job name validation
changed title from Backend: Make the name limit of Ci::BuildNeed match the job name limit to Backend: Increase Ci::BuildNeed job name limit to 255 and update expanded job name validation
Leaminn Machanged the descriptionCompare with previous version
Leaminn Machanged title from Backend: Increase Ci::BuildNeed job name limit to 255 and update expanded job name validation to Backend: Match Ci::BuildNeed name limit to match job name limit
changed title from Backend: Increase Ci::BuildNeed job name limit to 255 and update expanded job name validation to Backend: Match Ci::BuildNeed name limit to match job name limit
Leaminn Machanged the descriptionCompare with previous version
changed the description
Leaminn Machanged title from Backend: Match Ci::BuildNeed name limit to match job name limit to Backend: Match Ci::BuildNeed name limit with job name limit
changed title from Backend: Match Ci::BuildNeed name limit to match job name limit to Backend: Match Ci::BuildNeed name limit with job name limit
@sunjungp this issue also has the UX label. Just wanted to ping you here Sunjung if you have any thoughts on this change. We are planning to increase the limit of the build need that was discussed here.
So on the below screenshot, where we have test: [ubuntu, aws] build need name, the limit is currently 128 chars and we want to increase that to 255.
Does this need a feature flag? -> Given that we are increasing the limit, I believe there is no need for a feature flag.
Does there need to be an associated instrumentation issue created related to this work? -> Not unless we want to track how long the build need names people use?
Is there an example response showing the data structure that should be returned (new endpoints only)? - N/A
Hi @marknuzzo this issue is currently in review. It will go in in 16.6 if it doesn't make for 16.5 deadline. I added the at risk label to and and will nudge the review a bit.