That rpm DB lock up issue has been resolved with help from the deltarpm package developer. Basically, the code was not freeing the DB transaction. Suse was not facing that issue, as they do not use BDB locking mechanisms.<br>
Now, that this issue was fixed. I&#39;ve completed a basic prototype of the system. Currently, the yum plugin will detect the user is upgrading a rpm, will download the delta rpm, construct the new rpm, and leave that for yum to install.
<br>On the server side of things (code to generate drpms), I found it very helpful to integrate the drpm generation code into RepoPrune script, as they both share of a lot of functionality. RepoPrune depends on some variables available on fedora servers, which is why I have made a stripped down version so I could use that script on my laptop, but ideally, it should be integrated.
<br><br>One tiny thing I am facing is the naming convention to be used for the resulting drpms. This name needs to reflect both versions for which this delta was made. I am thinking I need to use something like:<br>&quot;
name-VerNew-RelNew-VerOld-RelOld.arch.drpm&quot;<br>Not sure if this would cause any issues, I mean not using the standard rpm naming scheme. But then again, this is not a rpm, which is why I chose suffix .drpm instead of say .delta.rpm
<br>Let me know what you guys think<br><br><br><div><span class="gmail_quote">On 1/25/07, <b class="gmail_sendername">Ahmed Kamal</b> &lt;<a href="mailto:email.ahmedkamal@googlemail.com">email.ahmedkamal@googlemail.com</a>
&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Thanks guys, I finally came to the conclusion that the problem was not the python code, but rather the applydeltarpm command that was touching the DB in some wrong way causing it to lockup. I confirmed this by writing a trivial yum plugin that only ran the command using direct on disk files, and yum still hung!
<br>BTW, yes, the constructed rpm does pass all signature checks. I&#39;m currently investigating what&#39;s causing the issue inside applydeltarpm.<div><span class="e" id="q_1105689341af878a_1"><br><br><div><span class="gmail_quote">
On 1/25/07, <b class="gmail_sendername">
Matthew Gillen</b> &lt;<a href="mailto:matt@gillens.us" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">matt@gillens.us</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

RPM&#39;s DB backend gets wedged sometimes.&nbsp;&nbsp;It&#39;s become a lot less common than<br>it used to be, but it just happened to me again recently.&nbsp;&nbsp;A solution (maybe<br>not the best) is to rebuild the database.&nbsp;&nbsp;I have a script that does the
<br>following:<br>$ cat fixrpmdb.sh<br> #!/bin/sh<br> rm -f /var/lib/rpm/__db*<br> rpm -vv --rebuilddb<br><br>The &#39;-vv&#39; makes it take longer, but I like it so that I can be sure it&#39;s<br>doing something.<br><br>

Hope that helps,<br>Matt<br><br>Ahmed Kamal wrote:<br>&gt; that does help, I can clear the lock without rebooting anymore! but, the<br>&gt; rpm hanging still happens every time. Not sure what&#39;s causing the issue<br>&gt; though.
<br>&gt;<br>&gt; On 1/24/07, * Rex Dieter* &lt;<a href="mailto:rdieter@math.unl.edu" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rdieter@math.unl.edu</a><br>&gt; &lt;mailto:<a href="mailto:rdieter@math.unl.edu" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
rdieter@math.unl.edu</a>&gt;&gt; wrote:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Ahmed Kamal wrote:
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; I&#39;ve been hacking on the code yesterday, and it seems I am hitting<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; some sort of a bug.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; ...<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; But it should be rare! In my case, this happens everytime. And I have
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; to reboot to clear the lock!<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; rm -f /var/lib/rpm/__db.*<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; doesn&#39;t work?<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; -- Rex<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; _______________________________________________<br>

&gt;&nbsp;&nbsp;&nbsp;&nbsp; Fedora-infrastructure-list mailing list<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:Fedora-infrastructure-list@redhat.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Fedora-infrastructure-list@redhat.com
</a><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mailto:<a href="mailto:Fedora-infrastructure-list@redhat.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Fedora-infrastructure-list@redhat.com</a>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.redhat.com/mailman/listinfo/fedora-infrastructure-list" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">https://www.redhat.com/mailman/listinfo/fedora-infrastructure-list
</a><br>&gt;<br>&gt;
<br>&gt;<br>&gt; ------------------------------------------------------------------------<br>&gt;<br>&gt; _______________________________________________<br>&gt; Fedora-infrastructure-list mailing list<br>&gt; <a href="mailto:Fedora-infrastructure-list@redhat.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

Fedora-infrastructure-list@redhat.com</a><br>&gt; <a href="https://www.redhat.com/mailman/listinfo/fedora-infrastructure-list" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">https://www.redhat.com/mailman/listinfo/fedora-infrastructure-list
</a><br><br></blockquote></div>
<br>

</span></div></blockquote></div><br>