On Nov 3, 2015, at Nov 3, 12:49 AM, Adrian Schröter <adrian@suse.de> wrote:
On Freitag, 30. Oktober 2015, 10:08:03 CET wrote Karl W Schulz:
Hello fine obs folks,
I have a standalone obs server and a number of packages using _service files that use “tar_scm” + “extract_file” + “recompress” services to fetch their inputs. I have been unable to put my finger on the condition that leads to this, but periodically I encounter situations where the latest SCM changes are not included, even after a rebuild is forced with “osc service remoterun”. This can be easily confirmed by examining the files presented in obs UI (and the final build rpms) vs the committed files in git. I have seen this now when interfacing with both external repositories (github) and internal repositories.
When I am fortunate enough to detect that obs is building from older src versions, the “fix” I have stumbled upon is to make a noop change to the package _service file (I generally just append a newline). Then, after a commit, the latest contents will be ingested.
I detect this fairly infrequently, but it just happened again and the noop change to _service file resolved it. Obviously it’s disconcerting to think other builds might be using older SCM contents and I was wondering if folks might have debug suggestions the next time it happens?
first thing what you should check is what files are inside of your source repository.
Do you get new tar balls containing old content?
for viewing the history:
osc log
for checking out a history including generated files:
osc co $PROJECT $PACKAGE -S -r $REV
if this is already broken, you need to debug the service itself.
luckily this is just an executable and you can run it manually.
Thanks for the tips. We did continue digging a bit more by running the tar_scm binary with the same args being passed by obs. That does indeed deliver the correct src into the tarball, so tar_scm seems unlikely to be the culprit. That led us to look further at the the use of the recompress service. Note that our _service files follow the advice given for git integration at: https://en.opensuse.org/openSUSE:Build_Service_private_instance_software_liv... In particular, we included the use of wildcard matching for the recompress file name, similar to the example: <param name="file">*git*.tar</param> I’m not sure if this is the correct diagnosis, but the wildcard example seems to imply that there should be only one resulting tarball from tar_scm. If I look in our local obs/sources directories though, we have some packages with multiple tarballs and our conjecture is that the wildcard might be matching a version that is not the latest? For now, we have disabled the use of the recompress service in favor of using the output from tar_scm directly. Karl -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org