openSUSE / open-build-service

Build and distribute Linux packages from sources in an automatic, consistent and reproducible way #obs
https://openbuildservice.org
GNU General Public License v2.0
939 stars 441 forks source link

2.3.7: [backend] Download on Demand: Updated packages are not downloaded #143

Closed dstolte closed 9 years ago

dstolte commented 11 years ago

When a package of a DoD project has been downloaded to a local OBS system and a newer package is published later then this newer package is not downloaded anymore. The local OBS will always use the oldest locally available package. The workaround is to manually delete the old package and the cache (.solv) and restart the schedular. This is a major pita. OBS version in use is 2.3.7.

mmohring commented 11 years ago

Not been able to update if wanted is a major disadvantage. To update or not automatic should be an option.

m4z commented 11 years ago

mmohring: You're saying there should be a config option like always_fetch_current_version or something similar? Otherwise I'm unsure what you're trying to say.

mmohring commented 11 years ago

yes, that's what I mean. An option to switch to old or new behavior.

m4z commented 11 years ago

Thanks for clarifying. (Your choice of words confused me, I was unsure if by "Not been able to update" you were saying that you tried and failed to update your OBS to 2.3.7, or you haven't had the time to do that yet, or if you meant "not being able to update (RPMs within the OBS)...".)

dstolte commented 11 years ago

We are not sure if any older version of OBS worked correctly and downloaded updated packages on demand if this package had been downloaded before. One of our developers just found this bug when he tried to build against a package that had something fixed and his build still failed. We checked the version installed in the build environment and found that the old buggy package was still used during the build by OBS. OBS didnt try to download the newer packages although it was available.

We use OBS for more than a year now and this was the first time we saw this bug.

mmohring commented 11 years ago

The behavior you describe is exactly how DoD behaves at the moment. I am not against fixing this behavior.

I just wanted to say that I would like to have an option for DoD for "old behavior" and "new behavior" so the user can switch between "downloaded once an never update the loaded packages" and "always download a never version of a package and keep the local copies of all packages consistent". Anyway, the implementation of the new behavior requires also to delete packages or to load also new packages in the local copy if they are deleted in the remote source or if the remote source changes its package structure. Meta data should also be adapted (e.g. the prjconf file), there is a likelyhood that they change if the package structure change.

marcus-h commented 11 years ago

On 2012-12-11 04:17:26 -0800, dstolte wrote:

When a package of a DoD project has been downloaded to a local OBS system and a newer package is published later then this newer package is not downloaded anymore. The local OBS will always use the oldest locally available package. The workaround is to manually delete the old package and the cache (.solv) and restart the schedular. This is a major pita.

Full ack:) The current dod implementation isn't really user friendly (if the metadata changes). Some time ago I started to work on an "update dod meta data" feature but it was more or less just a very rough proof of concept. The (outdated and incomplete) patch can be found here: http://lists.opensuse.org/opensuse-buildservice/2010-10/msg00015.html

dstolte commented 11 years ago

any news?

mlschroe commented 9 years ago

Fixed with the new DoD handling some months ago. Didn't know about the issue, so I didn't close it. Sorry.