should not insert version if all items were filtered

Bug #1238227 reported by Scott Moser
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
simplestreams
Fix Released
Medium
Unassigned
simplestreams (Ubuntu)
Fix Released
Medium
Scott Moser

Bug Description

This is a behavioral issue that comes from doing a partial mirror. If all items in a version were filtered out, we are currently still inserting the version. That causes problems if you change your filter items later.

See example here:
$ dlfile=examples/foocloud/streams/v1/com.example.foovendor:released:download.json
$ rm -Rf out.d; ./tools/tenv ./bin/sstream-mirror -v $dlfile out.d/ arch=amd64
com.example.foovendor:released:download/com.example.foovendor:pinky:server:amd64: to_add=['20121026.1', '20121001', '20120328'] to_remove=[]
com.example.foovendor:released:download/com.example.foovendor:pinky:server:i386: to_add=['20121026.1', '20121001', '20120328'] to_remove=[]

$ ./tools/tenv ./bin/sstream-mirror -v $dlfile out.d/ arch=amd64
com.example.foovendor:released:download/com.example.foovendor:pinky:server:i386: to_add=[] to_remove=[]
com.example.foovendor:released:download/com.example.foovendor:pinky:server:amd64: to_add=[] to_remove=[]

$ ./tools/tenv ./bin/sstream-mirror -v $dlfile out.d/
com.example.foovendor:released:download/com.example.foovendor:pinky:server:amd64: to_add=[] to_remove=[]
com.example.foovendor:released:download/com.example.foovendor:pinky:server:i386: to_add=[] to_remove=[]

$ find out.d/ -type f
out.d/files/beta-2/foovendor-6.1-beta2-server-cloudimg-amd64-disk1.img
out.d/files/beta-2/foovendor-6.1-beta2-server-cloudimg-amd64-root.tar.gz
out.d/files/beta-2/foovendor-6.1-beta2-server-cloudimg-amd64.tar.gz
out.d/files/release-20121026.1/foovendor-6.1-server-cloudimg-amd64.tar.gz
out.d/files/release-20121026.1/foovendor-6.1-server-cloudimg-amd64-root.tar.gz
out.d/files/release-20121026.1/foovendor-6.1-server-cloudimg-amd64-disk1.img
out.d/files/release-20121001/foovendor-6.1-server-cloudimg-amd64.tar.gz
out.d/files/release-20121001/foovendor-6.1-server-cloudimg-amd64-root.tar.gz
out.d/files/release-20121001/foovendor-6.1-server-cloudimg-amd64-disk1.img
out.d/.data/com.example.foovendor:released:download
out.d/streams/v1/com.example.foovendor:released:download.json

Note, it thinks it already has i386 stuff, and the .data/...download file agrees, with a section like:
  "com.example.foovendor:pinky:server:i386": {
   "arch": "i386",
   "stream": "released",
   "versions": {
    "20120328": {
     "label": "beta2"
    },
    "20121026.1": {
     "label": "release"
    },
    "20121001": {
     "label": "release"
    }
   },
   "release": "pinky",
   "build": "server",
   "version": "6.1"
  }

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: simplestreams 0.1.0~bzr315-0ubuntu1
ProcVersionSignature: Ubuntu 3.11.0-9.16-generic 3.11.2
Uname: Linux 3.11.0-9-generic x86_64
ApportVersion: 2.12.5-0ubuntu1
Architecture: amd64
Date: Thu Oct 10 15:36:16 2013
EcryptfsInUse: Yes
InstallationDate: Installed on 2011-10-19 (722 days ago)
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
MarkForUpload: True
PackageArchitecture: all
ProcEnviron:
 TERM=screen-bce
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: simplestreams
UpgradeStatus: Upgraded to saucy on 2013-05-20 (143 days ago)

Revision history for this message
Scott Moser (smoser) wrote :
Revision history for this message
Scott Moser (smoser) wrote :

Attached patch here changes the behavior, and seems sane to me:
$ rm -Rf out.d;
$ ./tools/tenv ./bin/sstream-mirror -v $dlfile out.d/ arch=amd64
com.example.foovendor:released:download/com.example.foovendor:pinky:server:amd64: to_add=['20121026.1', '20121001', '20120328'] to_remove=[]
com.example.foovendor:released:download/com.example.foovendor:pinky:server:i386: to_add=['20121026.1', '20121001', '20120328'] to_remove=[]

$ ./tools/tenv ./bin/sstream-mirror -v $dlfile out.d/ arch=amd64
com.example.foovendor:released:download/com.example.foovendor:pinky:server:amd64: to_add=[] to_remove=[]
com.example.foovendor:released:download/com.example.foovendor:pinky:server:i386: to_add=['20121026.1', '20121001', '20120328'] to_remove=[]

$ ./tools/tenv ./bin/sstream-mirror -v $dlfile out.d/ arch=i386
com.example.foovendor:released:download/com.example.foovendor:pinky:server:amd64: to_add=[] to_remove=[]
com.example.foovendor:released:download/com.example.foovendor:pinky:server:i386: to_add=['20121026.1', '20121001', '20120328'] to_remove=[]

Revision history for this message
Scott Moser (smoser) wrote :

fixed in revno 317.

Changed in simplestreams (Ubuntu):
assignee: nobody → Scott Moser (smoser)
importance: Undecided → Medium
status: New → Fix Committed
tags: added: patch
Scott Moser (smoser)
Changed in simplestreams:
status: New → Fix Committed
importance: Undecided → Medium
Changed in simplestreams (Ubuntu):
status: Fix Committed → Confirmed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package simplestreams - 0.1.0~bzr318-0ubuntu1

---------------
simplestreams (0.1.0~bzr318-0ubuntu1) saucy-proposed; urgency=low

  * New upstream snapshot.
    * fix odd behavior bug when filtering. The result was that if you
      had ever run with a filter, subsequent runs with modified filter
      would not see different results (LP: #1238227).
 -- Scott Moser <email address hidden> Tue, 15 Oct 2013 17:25:40 -0400

Changed in simplestreams (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Scott Moser (smoser) wrote : Fixed in simplestreams version 0.1.0.

This bug is believed to be fixed in simplestreams in version 0.1.0. If this is still a problem for you, please make a comment and set the state back to New

Thank you.

Changed in simplestreams:
status: Fix Committed → 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.