Hello,

I am investigating into a bug about cloned channels and errata. This is how to
reproduce it on the UI:

1. Clone a channel that contains errata, but select "clone without errata"
2. Go to Channels -> Manage Software Channels -> Errata -> Add -> Add Custom 
Errata
   (or Add RedHat Errata) -> Unmark the checkbox "Package Assoc." if necessary
3. Choose an Erratum, clone it and confirm

Result: The cloned erratum can be found in the cloned channel as "CLxxx"

5. Now subscribe a system to the newly cloned channel only
6. Go to this System -> Software -> Errata

Result: There is two errata listed, "xxx" and "CLxxx", but only "CLxxx" should 
be.
Also the table 'RhnServerNeededCache' shows even more entries where errata_id 
== null?

I found a lot of open bugs about this topic, but not exactly this one. If one 
of you
can reproduce it I could create a bug report for spacewalk, or are you aware of 
such
misbehavior already?

To me it looks like the used statement ('insert_new_cache_entries_by_packages' 
in
ErrataCache_queries.xml) is not doing the right thing. There even seems to be an
easy fix that I attached as a patch for master, which just calls a stored 
procedure
('update_needed_cache_for_channel', ErrataCache_queries.xml) instead.

Maybe someone of you who knows about this code could have a look at the issue,
I might be missing something ..

Thank you,
Johannes

-- 
SUSE LINUX Products GmbH, HRB 16746 (AG Nürnberg)
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer
>From 25cac35e2f20c249dd18ba522fe112ab058acd08 Mon Sep 17 00:00:00 2001
From: Johannes Renner <jren...@suse.de>
Date: Wed, 29 Feb 2012 16:52:43 +0100
Subject: [PATCH] Fix bug about cloned channels and errata

---
 .../action/channel/manage/PublishErrataAction.java |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/PublishErrataAction.java b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/PublishErrataAction.java
index 7a24554..226bb8a 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/PublishErrataAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/PublishErrataAction.java
@@ -97,7 +97,7 @@ public class PublishErrataAction extends RhnListAction {
         //update the errata info
         List chanList = new ArrayList();
         chanList.add(currentChan.getId());
-        ErrataCacheManager.insertCacheForChannelPackagesAsync(chanList, pidList);
+        ErrataCacheManager.updateCacheForChannelsAsync(chanList);
         ChannelManager.refreshWithNewestPackages(currentChan, "web.errata_push");
         request.setAttribute("cid", cid);
 
-- 
1.7.7

_______________________________________________
Spacewalk-devel mailing list
Spacewalk-devel@redhat.com
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to