Closed Bug 1170821 Opened 9 years ago Closed 9 years ago

queue: Azure queue naming collisions

Categories

(Taskcluster :: Services, defect, P2)

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jonasfj, Assigned: jonasfj)

References

Details

Attachments

(2 files)

taskcluster-queue uses azure queue storage, one queue for each provisionerId/workerType. Due to super obscure azure queue storage naming conventions we tried to base64 decode identifiers followed by a base32 encoding, see: https://github.com/taskcluster/taskcluster-queue/blob/a51f68aae994d7d13b7e55b524b99b3fc17cf645/queue/queueservice.js#L292-L303 And decodeUrlSafeBase64 in the same file. However, it turns out that this doesn't work. We have collisions. As nothing is critically broken right now, and this only affects workerTypes that almost the same name... We critically have to fix this... And try to do a gradual migration, by returning URLs for multiple queues...
Attached file GIthub PR
See comments on PR. This also fixes: bug 1162943, otherwise the legacy queues would just sit around forever, now we get clean up too. Of course remind me to configure an scheduled job on heroku :)
Assignee: nobody → jopsen
Status: NEW → ASSIGNED
Attachment #8616316 - Flags: review?(garndt)
Blocks: 1162943
Comment on attachment 8616316 [details] [review] GIthub PR Looks good. Had some comments in the PR but nothing major. I am curious how this will handle multiple priority queues as it's right now hard coded to have two queues (new one, and legacy), but maybe there is something I overlooked about this.
Attachment #8616316 - Flags: review?(garndt) → review+
oh, and I also just took a quick look at how the new queuenames are being constructed and tested it out locally, I assume it's a sane idea and works fine.
Pushed fixed will merge and deploy this later today when an interrupt is less annoying. I doubt this will cause problems, but we never know...
Rolled out... Next step is to remove the legacy queue names... We can do so in a week or so, when all messages in them have been consumer or expired.
Component: TaskCluster → Queue
Product: Testing → Taskcluster
Remove legacy queues... Should just work (tm).
Attachment #8636304 - Flags: review+
Deployed and working -- I hope..
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Component: Queue → Services
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: