[Piuparts-devel] Piuparts state-dependency-failed-testing analysis

Scott Schaefer saschaefer at neurodiverse.org
Wed Nov 2 01:18:47 UTC 2011


On 11/01/2011 10:03 AM, Holger Levsen wrote:
> Hi Scott,
>
> On Dienstag, 1. November 2011, Scott Schaefer wrote:
>    
>> OK.  I missed significance of your statement "DELETED them manually".
>> Deleting manually will cause it to be recreated (of course), but will
>> not generate a log entry.  The log " ... too old.  Renaming to force
>> re-creation" will only occur when the file exists, but is "too old" :-).
>>      
> Sure. But you got me wrong: I first just restarted piuparts, after changing
> the settings. Then I saw that the tar.gz werenot rrecreated, stopped piuparts,
> then i deleted them manually and restarted piuparts again.
>
>    
>> I believe I know where the problem is, and what needs to be modified.  I
>> have a 21-hour day on the calendar today, but may have some waiting free
>> time.  Will probably be 2-3 days.
>>      
> take your time, no hurry!
>
>
> cheers,
> 	Holger
>    

I don't have a fix.  I can see nothing wrong, and the tests I have run 
all pass OK.

The problem almost certainly is that some other process is modifying the 
c_time value of the tgz file.  I could attempt to test that here (and 
may in a couple of days), but as an alternative ....

Recall that when we first introduced this code, it would consume large 
amounts of CPU "continually" trying to create the tgz, but failing.  So 
we added a rate-limit config parameter: min-tgz-retry-delay.  When the 
file is "too old" (now - m_time value), the (assumed) time since last 
retry (now - c_time) is checked vs. this value.  With another  process 
modifying the c_time value, this never exceeds the config value, and the 
.tgz is thus never recreated.

I have pushed a new "bug/recreate_tgz" branch to the git repo.  This is 
a two-line change to piuparts-slave.py to log the various values used to 
determine if a rename/recreate should be attempted.  This should 
prove/disprove the above theory (though we will have to wait until the 
newly-created file is "too old" for proof).







More information about the Piuparts-devel mailing list