could queue filters match source as well as binaries?

Bug #33700 reported by Colin Watson
4
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
Low
Steve Kowalik

Bug Description

lp_archive@drescher:/tmp/cjwatson$ queue info autoconf-nonfree
Initialising connection to queue new
Running: "info autoconf-nonfree"
Listing ubuntu/dapper (NEW) 0/37
---------|----|----------------------|----------------------|---------------
---------|----|----------------------|----------------------|---------------
                                                               0/37 total
lp_archive@drescher:/tmp/cjwatson$ queue info autoconf-doc
Initialising connection to queue new
Running: "info autoconf-doc"
Listing ubuntu/dapper (NEW) 1/37
---------|----|----------------------|----------------------|---------------
      99 | -B | autoconf-nonfree | 2.59-3 | four weeks
         | autoconf-doc/2.59-3/i386 Component: non-free Section: doc Priority: OPTIONAL
---------|----|----------------------|----------------------|---------------
                                                               1/37 total

I would find it useful if the filter "autoconf-nonfree" matched binary uploads from source packages matching "autoconf-nonfree" as well as binaries matching "autoconf-nonfree".

Tags: lp-soyuz qa-ok

Related branches

Revision history for this message
Celso Providelo (cprov) wrote :

Ok, will add support for matching also binarypackagenames on binary queue entries

Changed in launchpad-upload-and-queue:
assignee: nobody → cprov
status: Unconfirmed → Confirmed
Revision history for this message
Colin Watson (cjwatson) wrote :

Binary package names are already matched; it's source package names that I would like to be matched in addition.

Curtis Hovey (sinzui)
Changed in soyuz:
assignee: Celso Providelo (cprov) → nobody
Revision history for this message
Colin Watson (cjwatson) wrote :

This has managed to survive through the refactoring of getQueueItems to getPackageUploads. These days I think it needs to be fixed in PackageUploadSet.getAll, presumably by joining the DB equivalent of PackageUploadBuild.source_package_release.

Colin Watson (cjwatson)
Changed in launchpad:
assignee: nobody → Colin Watson (cjwatson)
status: Triaged → In Progress
Revision history for this message
Colin Watson (cjwatson) wrote :
Download full text (28.6 KiB)

On the merge proposal, Robert asked for a performance analysis. It seems more sensible to record that here rather than on the MP.

When operating on the large queues (e.g. DONE) even the old query is a total disaster on dogfood (note that this is a query from the web UI which doesn't allow restricting by pocket):

EXPLAIN ANALYZE SELECT DISTINCT PackageUpload.archive, PackageUpload.changesfile, PackageUpload.date_created, PackageUpload.distroseries, PackageUpload.id, PackageUpload.package_copy_job, PackageUpload.pocket, PackageUpload.signing_key, PackageUpload.status FROM PackageUpload LEFT JOIN PackageCopyJob ON PackageCopyJob.id = PackageUpload.package_copy_job LEFT JOIN PackageUploadSource ON PackageUploadSource.packageupload = PackageUpload.id LEFT JOIN SourcePackageRelease ON SourcePackageRelease.id = PackageUploadSource.sourcepackagerelease LEFT JOIN SourcePackageName ON SourcePackageName.id = SourcePackageRelease.sourcepackagename LEFT JOIN PackageUploadBuild ON PackageUploadBuild.packageupload = PackageUpload.id LEFT JOIN BinaryPackageRelease ON BinaryPackageRelease.build = PackageUploadBuild.build LEFT JOIN BinaryPackageName ON BinaryPackageName.id = BinaryPackageRelease.binarypackagename LEFT JOIN PackageUploadCustom ON PackageUploadCustom.packageupload = PackageUpload.id LEFT JOIN LibraryFileAlias ON LibraryFileAlias.id = PackageUploadCustom.libraryfilealias WHERE PackageUpload.distroseries = 107 AND PackageUpload.status IN (3) AND PackageUpload.archive IN (1, 534) AND (PackageCopyJob.package_name LIKE '%fglrx-installer-updates%' ESCAPE '!' OR SourcePackageName.name LIKE '%fglrx-installer-updates%' ESCAPE '!' OR BinaryPackageName.name LIKE '%fglrx-installer-updates%' ESCAPE '!' OR LibraryFileAlias.filename LIKE '%fglrx-installer-updates%' ESCAPE '!') ORDER BY PackageUpload.id DESC LIMIT 31 OFFSET 0;
 Limit (cost=4300017.37..4300018.15 rows=31 width=40) (actual time=1616568.351..1616568.404 rows=11 loops=1)
   -> Unique (cost=4300017.37..4300021.47 rows=164 width=40) (actual time=1616568.347..1616568.383 rows=11 loops=1)
         -> Sort (cost=4300017.37..4300017.78 rows=164 width=40) (actual time=1616568.342..1616568.349 rows=11 loops=1)
               Sort Key: packageupload.id, packageupload.archive, packageupload.changesfile, packageupload.date_created, packageupload.package_copy_job, packageupload.pocket, packageupload.signing_key
               Sort Method: quicksort Memory: 17kB
               -> Hash Right Join (cost=3978824.68..4300011.34 rows=164 width=40) (actual time=1614733.292..1616568.144 rows=11 loops=1)
                     Hash Cond: (packageuploadcustom.packageupload = packageupload.id)
                     Filter: ((packagecopyjob.package_name ~~ '%fglrx-installer-updates%'::text) OR (sourcepackagename.name ~~ '%fglrx-installer-updates%'::text) OR (binarypackagename.name ~~ '%fglrx-installer-updates%'::text) OR (libraryfilealias.filename ~~ '%fglrx-installer-updates%'::text))
                     -> Hash Left Join (cost=1475901.71..1779659.34 rows=407243 width=47) (actual time=1003103.339..1145793.114 rows=407113 loops=1)
                           Hash Cond: (packageuploadcustom.libraryfilealias = lib...

Colin Watson (cjwatson)
Changed in launchpad:
assignee: Colin Watson (cjwatson) → Steve Kowalik (stevenk)
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
Steve Kowalik (stevenk)
tags: added: qa-ok
removed: qa-needstesting
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
removed: qa-ok
Changed in launchpad:
status: In Progress → Fix Committed
Steve Kowalik (stevenk)
Changed in launchpad:
status: Fix Committed → In Progress
Steve Kowalik (stevenk)
tags: added: qa-ok
removed: qa-needstesting
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
removed: qa-ok
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
Steve Kowalik (stevenk)
tags: added: qa-ok
removed: qa-needstesting
Steve Kowalik (stevenk)
Changed in launchpad:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.