<table><tr><td style="">TallFurryMan edited the summary of this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-aa4fml2fplb3mhy/">(Show Details)</a><br />TallFurryMan edited the test plan for this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-5tsghwxrwady5rv/">(Show Details)</a>
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D13009">View Revision</a></tr></table><br /><div><strong>CHANGES TO REVISION SUMMARY</strong><div><div style="white-space: pre-wrap; color: #74777D;"><div style="padding: 8px 0;">...</div>While checking the interesting edge case of captures stored in /tmp being immediately deleted, I made sure jobs being evaluated with no repeats remaining, but for some reason still not completed, would properly be re-checked for <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">captures</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">captures. I also added a safeguard to avoid having the repeats remaining getting unexpectedly negative.<br />
<br />
This change also makes sure job completion is evaluated before a batch repeats. Repeats, in conjunction with option 'Remember Job Progress', ensure the proper amount of captures is stored. For the same target, if job A has a repeat count equal to 1 and job B has a repeat count equal to 2, the amount of captures stored after A and B finish will equal 2 sequence items. This also means that if B runs first, A will not run as it will be considered complete.<br />
<br />
This change also works around an issue with /tmp, where captures stored are immediately deleted for some odd reason, and uses /var/tmp instead for unitary tests.<br />
<br />
This change also introduces test vector 'distant_jobs_no_twlight', which tests the ability of the scheduler to sleep and park the mount between jobs</span>.<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">I also added a safeguard to avoid having the repeats remaining getting unexpectedly negative</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Speaking of parking, it seems the Telescope Simulator is unable to handle parking on my setup. The simulator will always initialize unpark, and will never notify parking state. It will however, move and park properly. There is still an issue with the scheduler in a specific edge case, where the scheduler is unable to consider the mount unparked, and will loop until the mount is unparked manually. Because these issues are interleaved, I consider the problem in the Telescope Simulator must be fixed first.<br />
<br />
This change also fixes an issue observed with duplicated repeating jobs, where the optimization on step pipelines was preventing the job from completing and also letting the next job execute. On the subject of capturing, there is still a weird problem with the Capture Tab and the CCD Simulator, where sometimes not all captures of a set of sequence jobs are stored. This is visible with test vector 'duplicated_scheduler_jobs_duplicated_sequence_jobs_no_twilight', in which sometimes only 4 captures will store on the first job run instead of the expected 7 RGBLRGB. The scheduler is able to mitigate this by noticing there are missing captures, and rescheduling the job to execute again.<br />
<br />
This change also fixes - again - the capture count algorithm. Now capture counts are displayed properly in the scheduler queue! This one was tricky, so I added a large documentation block in updateCompletedJobsCount. It's important to note that while its name doesn't give any hint, this function will also change the behavior of the set of sequence jobs associated to the scheduler job.<br />
<br />
Finally this change fixes an issue/regression on scheduler shutdown by rewriting and clarifying how the scheduler decides to stop when evaluating jobs</span>.</div></div></div><br /><div><strong>CHANGES TO TEST PLAN</strong><div><div style="white-space: pre-wrap; color: #74777D;"><span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Using 'duplicated_scheduler_jobs_no_twilight',</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Use 'simple_test_no_twilight' to verify the general behavior of the scheduler.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">'duplicated_scheduler_jobs_duplicated_sequence_jobs_no_twilight',</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">The issue with parking the Telescope Simulator can be triggered there.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">job list will properly complete</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Depending on the time this test is executed</span>, <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">in the right order.<br />
Warning!</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">the ability of the scheduler to park and wait or to sleep can be verified too.<br />
<br />
Use 'duplicated_scheduler_jobs_duplicated_sequence_jobs_no_twilight' to test completion checks.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">There is an issue with</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">The issue with partial</span> captures <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">when</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">during</span> the <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">.esq file is configured to stored to '/tmp',</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">first run of a set of sequence jobs can be triggered there.</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">so experiment with storage location. <br />
Warning!</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Note the special manipulation of duplicated scheduler jobs,</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">This change DOES NOT fix the case where option 'Remember Job Progress' is disabled: a duplicated job will be selected, but will not execute</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">which all return to idle simultaneously in to be re-evaluated for completion.<br />
<br />
Use 'distant_jobs_no_twilight' to test specifically the ability of the scheduler to park and wait for a job that is 12 hours later</span>.<br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Warning! There is still an issue where the scheduler will not display capture counts properly, and will fail to properly admit completion for repeated jobs.<br />
<br />
No reviewer set, I'll probably update that commit.</span></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R321 KStars</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D13009">https://phabricator.kde.org/D13009</a></div></div><br /><div><strong>To: </strong>TallFurryMan, mutlaqja<br /><strong>Cc: </strong>kde-edu, narvaez, apol<br /></div>