[opensuse-buildservice] running source services on accepting requests or just copying results
Hi all, As already mentioned as a side comment in a previous mail I found a regression with the new source services in 2.3 that asks for a solution. I realized that when accepting requests of packages using source services the services are not run on the accepted package. Michael mentioned that the idea might be to copy the results of the original package (to get accepted) instead of rerunning them. This makes sense to me but unfortunately this result copying neither takes place, thus leaving the accepted package in a broken state. Only a manual run of source services will bring it back to life. Thus two things needed to be done: 1. Discuss what is the intended behavior. I see the already mentioned options: a) source services are rerun b) source service results are copied from the originating package I personally don't have a very strong opinion which one is the better solution as long as at least one of them is implemented. Thus I would like to hear the opinion of those people that have a strong one plus the opinion of the people that did the original design. 2. Fix the issue in the direction that was the result of the previous discussion. I might be able to help if the relevant code is easy enough to understand to follow the semantic intentions that are behind it. You can see a broken example for this problem on build.opensuse.org in project home:schiele:treesbug_base, package zlib, which was modified in a branch and then submitted back. As you can see the source services were not run, nor their results copied from the branch. That's why it is currently still in failed state. I could fix this by triggering a source service run manually but I decided to leave it as such in case someone wanted to have a look into it for debugging. I will now start looking into the code myself and try to get a better idea on what is going on there. My current (still relatively uneducated) guess is that the code might be confused again about the difference between the srcmd5 of the package without source services run and those having them run and thus instead of copying the sources for the package with source services applied, copying the verbatim package. But better pointers are as usual always welcome! Thanks, Robert -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Am Montag, 12. Dezember 2011, 13:27:08 schrieb Robert Schiele:
Hi all,
As already mentioned as a side comment in a previous mail I found a regression with the new source services in 2.3 that asks for a solution.
I realized that when accepting requests of packages using source services the services are not run on the accepted package. Michael mentioned that the idea might be to copy the results of the original package (to get accepted) instead of rerunning them. This makes sense to me but unfortunately this result copying neither takes place, thus leaving the accepted package in a broken state. Only a manual run of source services will bring it back to life.
Thus two things needed to be done:
1. Discuss what is the intended behavior. I see the already mentioned options: a) source services are rerun b) source service results are copied from the originating package I personally don't have a very strong opinion which one is the better solution as long as at least one of them is implemented. Thus I would like to hear the opinion of those people that have a strong one plus the opinion of the people that did the original design.
Both versions should be supported and it should be configurable. Eg. via setting an attribute in the project to enforce the service rerun for example.
2. Fix the issue in the direction that was the result of the previous discussion. I might be able to help if the relevant code is easy enough to understand to follow the semantic intentions that are behind it.
You can see a broken example for this problem on build.opensuse.org in project home:schiele:treesbug_base, package zlib, which was modified in a branch and then submitted back. As you can see the source services were not run, nor their results copied from the branch.
That is a bug in any case. Well, maybe a third option (not to run service and not to copy expanded sources), but it should not be a default behaviour.
That's why it is currently still in failed state. I could fix this by triggering a source service run manually but I decided to leave it as such in case someone wanted to have a look into it for debugging.
I will now start looking into the code myself and try to get a better idea on what is going on there. My current (still relatively uneducated) guess is that the code might be confused again about the difference between the srcmd5 of the package without source services run and those having them run and thus instead of copying the sources for the package with source services applied, copying the verbatim package. But better pointers are as usual always welcome!
Thanks, Robert -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de
-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Mon, Dec 12, 2011 at 1:46 PM, Adrian Schröter <adrian@suse.de> wrote:
Am Montag, 12. Dezember 2011, 13:27:08 schrieb Robert Schiele:
1. Discuss what is the intended behavior. I see the already mentioned options: a) source services are rerun b) source service results are copied from the originating package I personally don't have a very strong opinion which one is the better solution as long as at least one of them is implemented. Thus I would like to hear the opinion of those people that have a strong one plus the opinion of the people that did the original design.
Both versions should be supported and it should be configurable. Eg. via setting an attribute in the project to enforce the service rerun for example.
Thanks! But this is only a plan not implemented yet, right? So, talking about the current code base to at least fix the current behavior, am I correct that the intention of that code is to make the result copy? Or were source services just nor considered at all in the current code base on request handling, such that there was no clear design decision so far?
You can see a broken example for this problem on build.opensuse.org in project home:schiele:treesbug_base, package zlib, which was modified in a branch and then submitted back. As you can see the source services were not run, nor their results copied from the branch.
That is a bug in any case. Well, maybe a third option (not to run service and not to copy expanded sources), but it should not be a default behaviour.
Ok, good that you agree. ;) So, if someone could point me to the code that is supposed to do this copying I might be able to track down more quickly what the problem is and maybe even produce a fix. Robert -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Mon, Dec 12, 2011 at 2:23 PM, Robert Schiele <rschiele@gmail.com> wrote:
On Mon, Dec 12, 2011 at 1:46 PM, Adrian Schröter <adrian@suse.de> wrote:
Am Montag, 12. Dezember 2011, 13:27:08 schrieb Robert Schiele:
1. Discuss what is the intended behavior. I see the already mentioned options: a) source services are rerun b) source service results are copied from the originating package I personally don't have a very strong opinion which one is the better solution as long as at least one of them is implemented. Thus I would like to hear the opinion of those people that have a strong one plus the opinion of the people that did the original design.
Both versions should be supported and it should be configurable. Eg. via setting an attribute in the project to enforce the service rerun for example.
Thanks! But this is only a plan not implemented yet, right? So, talking about the current code base to at least fix the current behavior, am I correct that the intention of that code is to make the result copy? Or were source services just nor considered at all in the current code base on request handling, such that there was no clear design decision so far?
Ok, let me give my current understanding of the code so far such that you can get feedback about whether my understanding is correct and I am going into the right direction here: 1. My understanding is that the API explicitly asks for not running source services by setting noservices in src/api/app/controllers/request_controller.rb. Thus implementing the case of rerunning the source service after a submit request has been accepted should be implementable by just removing this flag for this case. Is this right or is there more to be done? Or is this actually conceptually wrong? Well, at least it seems to work for me. 2. For the other case that we don't want to run source services, which seems to be the intended case in the current code: Is my understanding correct that the responsibility for getting the copying right and thus for the place of the relevant fix would be in the backend code, more precisely in the bs_srcserver code in sourcecopy? Robert -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
participants (2)
-
Adrian Schröter
-
Robert Schiele