Skip Menu |

This queue is for tickets about the Test-Smoke CPAN distribution.

Report information
The Basics
Id: 127577
Status: open
Priority: 0/
Queue: Test-Smoke

People
Owner: Nobody in particular
Requestors: jkeenan [...] pobox.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Test-Smoke smoked incorrect branch
Date: Mon, 5 Nov 2018 18:02:26 -0500
To: bug-Test-Smoke [...] rt.cpan.org
From: James E Keenan <jkeenan [...] pobox.com>
Once again I have to report a situation where Test-Smoke did not smoke the branch I requested. I reported an instance of this problem several months ago as "Problem 2" in https://rt.cpan.org/Ticket/Display.html?id=125927. Most of my subsequent posts in that ticket concerned "Problem 1". I haven't had a response to either problem, but since Problem 2 has reoccurred let's put all discussion of that problem in one new ticket. My original statement of Problem 2 is attached. Here is the new instance. I manually kick off smoke-test runs of blead and other branches on a FreeBSD-11.2-STABLE host, 'perlmonger.nycbug.org'. The 2 most recent runs on that platform (as of the composition of this message, and as displayed at http://perl5.test-smoke.org/search with appropriate drop-down selections) are: ##### URL|Git-id|Branch|Smoke date|Status http://perl5.test-smoke.org/report/73583|v5.29.4-34-g328d907979|blead|2018-11-05 00:23:31+00|PASS http://perl5.test-smoke.org/report/73607|v5.26.2-85-gadf1b5d28a|smoke-me/jkeenan/cleanup-t-io-fs|2018-11-05 13:07:31+00|PASS ##### Now, just looking at that, you might wonder about the "v5.26.2" in the Git-id of run 73607. For one thing, another run on that page lists a run of the "smoke-me/jkeenan/cleanup-t-io-fs" branch but with a Git-id beginning "v5.29.4". ##### URL|Git-id|Branch|Smoke date|Status http://perl5.test-smoke.org/report/73178|v5.29.4-22-g167698623c|smoke-me/jkeenan/cleanup-t-io-fs|2018-10-29 22:40:15+00|PASS ##### Here's the problem: What I *wanted* to test earlier today was the 'maint-5.26' branch, *not* the smoke-me/jkeenan/cleanup-t-io-fs branch. In my 'smokecurrent.gitbranch' file the first 3 entries at the point when I kicked off the smoke-test run were: ##### maint-5.26 blead smoke-me/jkeenan/cleanup-t-io-fs ##### (See tarball attached for 'defective-20181105/adf1b5d2/smokecurrent.gitbranch' and other files subsequently mentioned in this report.) Suppose that I go into the 'git-perl' directory of my Test-Smoke rig and call 'git status'. As recorded in defective-20181105/adf1b5d2/git-perl.git.status.txt, I get: ##### On branch maint-5.26 Your branch is up to date with 'origin/maint-5.26'. nothing to commit, working tree clean ##### Everything fine there. Now supposed I go next door to the 'perl-current' directory in which the run is executed. As recorded in defective-20181105/adf1b5d2/perl-current.git.status.txt, I get: ##### $ cat perl-current.git.status.txt On branch smoke-me/jkeenan/cleanup-t-io-fs Your branch and 'origin/smoke-me/jkeenan/cleanup-t-io-fs' have diverged, and have 323 and 3496 different commits each, respectively. (use "git pull" to merge the remote branch into yours) Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: patchlevel.h Untracked files: (use "git add <file>..." to include in what will be committed) mktest.jsn mktest.out mktest.rpt patchlevel.bak no changes added to commit (use "git add" and/or "git commit -a") ##### Big problem! The 'perl-current' directory was not updated to hold 'maint-5.26'. Worse, it's not even holding blead any more. For some reason it appears to have done a checkout of a branch from more than a week ago! We can also spot problems developing in the log file. I've included both the full .log file and a 'head' of it in the tarball. If we look at defective-20181105/adf1b5d2/adf1b5d2.head.log, we see: ##### [2018-11-05 13:07:26+0000] ==> Starting synctree [2018-11-05 13:07:26+0000] qx[/usr/local/bin/git remote update --prune 2>&1] [2018-11-05 13:07:28+0000] qx[/usr/local/bin/git checkout maint-5.26 [2018-11-05 13:07:28+0000] 2>&1] Switched to a new branch 'maint-5.26' [2018-11-05 13:07:29+0000] qx[/usr/local/bin/git reset --hard origin/maint-5.26 [2018-11-05 13:07:29+0000] 2>&1] [2018-11-05 13:07:29+0000] qx[/usr/local/bin/git clean -dfx 2>&1] [2018-11-05 13:07:29+0000] qx[/usr/local/bin/git fetch origin 2>&1] [2018-11-05 13:07:30+0000] qx[/usr/local/bin/git checkout maint-5.26 [2018-11-05 13:07:30+0000] 2>&1] ##### So far so good. ##### error: Your local changes to the following files would be overwritten by checkout: patchlevel.h Please commit your changes or stash them before you switch branches. Aborting ##### I get that on every smoke test run. ##### [2018-11-05 13:07:30+0000] qx[/usr/local/bin/git reset --hard origin/maint-5.26 [2018-11-05 13:07:30+0000] 2>&1] [2018-11-05 13:07:31+0000] qx[/usr/local/bin/perl5 Porting/make_dot_patch.pl > .patch] [2018-11-05 13:07:31+0000] /home/jkeenan/p5smoke/perl-current is now up to patchlevel adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 ##### Everything *looks* good here. Commit adf1b5d28 was the then-current head of the maint-5.26 branch: ##### commit adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 (origin/maint-5.26) Author: Steve Hay <steve.m.hay@googlemail.com> AuthorDate: Sun Nov 4 20:55:50 2018 +0000 Commit: Steve Hay <steve.m.hay@googlemail.com> CommitDate: Sun Nov 4 20:55:50 2018 +0000 Import perl5280delta.pod ##### Continuing: ##### [2018-11-05 13:07:31+0000] ==> Starting runsmoke [2018-11-05 13:07:31+0000] [./tssmokeperl.pl] chdir(/home/jkeenan/p5smoke/perl-current) [2018-11-05 13:07:31+0000] Setup alarm: Mon Nov 5 19:07:31 2018 [2018-11-05 13:07:31+0000] qx[/usr/local/bin/perl5 -e "require q[/home/jkeenan/p5smoke/perl-current/cpan/Test-Harness/lib/Test/Harness.pm];print Test::Harness->VERSION" 2>&1] [2018-11-05 13:07:31+0000] Found: Test::Harness version 3.38. [2018-11-05 13:07:31+0000] Reading build configurations from /home/jkeenan/p5smoke/perlcurrent.cfg [2018-11-05 13:07:31+0000] Reading 'Policy.sh' from default content (v=1) [2018-11-05 13:07:31+0000] Running test suite only with 'harness' [2018-11-05 13:07:31+0000] make distclean ... [2018-11-05 13:07:31+0000] Smoking patch adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 v5.26.2-85-gadf1b5d28a ##### Again, everything *looks* good. But on the very next line we see: ##### [2018-11-05 13:07:31+0000] Smoking branch smoke-me/jkeenan/cleanup-t-io-fs ##### Where did that come from? I grepped in the source code for those log messages and found this: ##### $ ack 'Smoking (branch|patch)' lib/Test lib/Test/Smoke.pm 179: $smoker->ttylog("Smoking patch $patch->[0] $patch->[1]\n"); 180: $smoker->ttylog("Smoking branch $patch->[2]\n") if $patch->[2]; lib/Test/Smoke/Reporter.pm 272: if (/^Smoking branch (\S+)/) { lib/Test/Smoke/App/RunSmoke.pm 103: $smoker->ttylog("Smoking patch $patch->[0] @{[$patch->[1]||'']}\n"); 104: $smoker->ttylog("Smoking branch $patch->[2]\n") if $patch->[2]; ##### Now, I don't know whether the smoke run was working in lib/Test/Smoke.pm or lib/Test/Smoke/App/RunSmoke.pm. But it appears that in either case $patch is a hashref which is populated by reading a hidden file in the perl-current directory: .patch. I've included that in the tarball but for visibility I've called in 'dot.patch'. For the problematic smoke-test run its contents were: ##### smoke-me/jkeenan/cleanup-t-io-fs 2018-11-04.20:55:50 adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 v5.26.2-85-gadf1b5d28a ##### Splitting on the whitespace, we have: * The name of the branch that got smoked -- but which was not the branch designated in smokecurrent.gitbranch. * A datestamp which I think was the time of the *start* of the *previous* smoke run, i.e., the run reported in http://perl5.test-smoke.org/report/73583. * The SHA of head of the branch which *should have been run* but which was not. * The Git-id of the SHA in the preceding item. This discrepancy is also reflected in the other files output by Test-Smoke in the problematic run. For example, in defective-20181105/adf1b5d2/outadf1b5d28a4fd0e20bbbb72cab062fdd520cb065.out, we have: ##### Smoking patch adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 v5.26.2-85-gadf1b5d28a Smoking branch smoke-me/jkeenan/cleanup-t-io-fs ##### The "patch" line reports the SHA and Git-id of the branch I wanted to smoke. The "branch" line shows the branch actually and mistakenly smoked. This is as far as I've been able to diagnose this so far. Since I want to resume smoke-testing blead on this machine, I'll soon be overwriting the contents of my 'git-perl' and 'perl-current' directories. I will do that in 24 hours, so that if there's any information you need from those directories that I have not already provided in the tarball, please let me know ASAP. Thank you very much. Jim Keenan
Download defective-20181105.tar.gz
application/gzip 60.8k

Message body not shown because it is not plain text.

Message body is not shown because sender requested not to inline it.

On Mon Nov 05 18:02:50 2018, jkeenan@pobox.com wrote: Show quoted text
> Once again I have to report a situation where Test-Smoke did not smoke > the branch I requested. > > I reported an instance of this problem several months ago as "Problem > 2" > in https://rt.cpan.org/Ticket/Display.html?id=125927. Most of my > subsequent posts in that ticket concerned "Problem 1". I haven't had > a > response to either problem, but since Problem 2 has reoccurred let's > put > all discussion of that problem in one new ticket. My original > statement > of Problem 2 is attached. > > Here is the new instance. > > I manually kick off smoke-test runs of blead and other branches on a > FreeBSD-11.2-STABLE host, 'perlmonger.nycbug.org'. The 2 most recent > runs on that platform (as of the composition of this message, and as > displayed at http://perl5.test-smoke.org/search with appropriate > drop-down selections) are: > > ##### > URL|Git-id|Branch|Smoke date|Status > http://perl5.test-smoke.org/report/73583|v5.29.4-34- > g328d907979|blead|2018-11-05 > 00:23:31+00|PASS > http://perl5.test-smoke.org/report/73607|v5.26.2-85- > gadf1b5d28a|smoke-me/jkeenan/cleanup-t-io-fs|2018-11-05 > 13:07:31+00|PASS > ##### > > Now, just looking at that, you might wonder about the "v5.26.2" in the > Git-id of run 73607. For one thing, another run on that page lists a > run of the "smoke-me/jkeenan/cleanup-t-io-fs" branch but with a Git-id > beginning "v5.29.4". > > ##### > URL|Git-id|Branch|Smoke date|Status > http://perl5.test-smoke.org/report/73178|v5.29.4-22- > g167698623c|smoke-me/jkeenan/cleanup-t-io-fs|2018-10-29 > 22:40:15+00|PASS > ##### > > Here's the problem: What I *wanted* to test earlier today was the > 'maint-5.26' branch, *not* the smoke-me/jkeenan/cleanup-t-io-fs > branch. > In my 'smokecurrent.gitbranch' file the first 3 entries at the point > when I kicked off the smoke-test run were: > > ##### > maint-5.26 > blead > smoke-me/jkeenan/cleanup-t-io-fs > ##### > > (See tarball attached for > 'defective-20181105/adf1b5d2/smokecurrent.gitbranch' and other files > subsequently mentioned in this report.) > > Suppose that I go into the 'git-perl' directory of my Test-Smoke rig > and > call 'git status'. As recorded in > defective-20181105/adf1b5d2/git-perl.git.status.txt, I get: > > ##### > On branch maint-5.26 > Your branch is up to date with 'origin/maint-5.26'. > > nothing to commit, working tree clean > ##### > > Everything fine there. Now supposed I go next door to the > 'perl-current' directory in which the run is executed. As recorded in > defective-20181105/adf1b5d2/perl-current.git.status.txt, I get: > > ##### > $ cat perl-current.git.status.txt > On branch smoke-me/jkeenan/cleanup-t-io-fs > Your branch and 'origin/smoke-me/jkeenan/cleanup-t-io-fs' have > diverged, > and have 323 and 3496 different commits each, respectively. > (use "git pull" to merge the remote branch into yours) > > Changes not staged for commit: > (use "git add <file>..." to update what will be committed) > (use "git checkout -- <file>..." to discard changes in working > directory) > > modified: patchlevel.h > > Untracked files: > (use "git add <file>..." to include in what will be committed) > > mktest.jsn > mktest.out > mktest.rpt > patchlevel.bak > > no changes added to commit (use "git add" and/or "git commit -a") > ##### > > Big problem! The 'perl-current' directory was not updated to hold > 'maint-5.26'. Worse, it's not even holding blead any more. For some > reason it appears to have done a checkout of a branch from more than a > week ago! > > We can also spot problems developing in the log file. I've included > both the full .log file and a 'head' of it in the tarball. If we look > at defective-20181105/adf1b5d2/adf1b5d2.head.log, we see: > > ##### > [2018-11-05 13:07:26+0000] ==> Starting synctree > [2018-11-05 13:07:26+0000] qx[/usr/local/bin/git remote update --prune
> 2>&1]
> [2018-11-05 13:07:28+0000] qx[/usr/local/bin/git checkout maint-5.26 > [2018-11-05 13:07:28+0000] 2>&1] > Switched to a new branch 'maint-5.26' > [2018-11-05 13:07:29+0000] qx[/usr/local/bin/git reset --hard > origin/maint-5.26 > [2018-11-05 13:07:29+0000] 2>&1] > [2018-11-05 13:07:29+0000] qx[/usr/local/bin/git clean -dfx 2>&1] > [2018-11-05 13:07:29+0000] qx[/usr/local/bin/git fetch origin 2>&1] > [2018-11-05 13:07:30+0000] qx[/usr/local/bin/git checkout maint-5.26 > [2018-11-05 13:07:30+0000] 2>&1] > ##### > > So far so good. > > ##### > error: Your local changes to the following files would be overwritten > by > checkout: > patchlevel.h > Please commit your changes or stash them before you switch branches. > Aborting > ##### > > I get that on every smoke test run. > > ##### > [2018-11-05 13:07:30+0000] qx[/usr/local/bin/git reset --hard > origin/maint-5.26 > [2018-11-05 13:07:30+0000] 2>&1] > [2018-11-05 13:07:31+0000] qx[/usr/local/bin/perl5 > Porting/make_dot_patch.pl > .patch] > [2018-11-05 13:07:31+0000] /home/jkeenan/p5smoke/perl-current is now > up > to patchlevel adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 > ##### > > Everything *looks* good here. Commit adf1b5d28 was the then-current > head > of the maint-5.26 branch: > > ##### > commit adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 (origin/maint-5.26) > Author: Steve Hay <steve.m.hay@googlemail.com> > AuthorDate: Sun Nov 4 20:55:50 2018 +0000 > Commit: Steve Hay <steve.m.hay@googlemail.com> > CommitDate: Sun Nov 4 20:55:50 2018 +0000 > > Import perl5280delta.pod > ##### > > Continuing: > > ##### > [2018-11-05 13:07:31+0000] ==> Starting runsmoke > [2018-11-05 13:07:31+0000] [./tssmokeperl.pl] > chdir(/home/jkeenan/p5smoke/perl-current) > [2018-11-05 13:07:31+0000] Setup alarm: Mon Nov 5 19:07:31 2018 > [2018-11-05 13:07:31+0000] qx[/usr/local/bin/perl5 -e "require > q[/home/jkeenan/p5smoke/perl-current/cpan/Test- > Harness/lib/Test/Harness.pm];print > Test::Harness->VERSION" 2>&1] > [2018-11-05 13:07:31+0000] Found: Test::Harness version 3.38. > [2018-11-05 13:07:31+0000] Reading build configurations from > /home/jkeenan/p5smoke/perlcurrent.cfg > [2018-11-05 13:07:31+0000] Reading 'Policy.sh' from default content > (v=1) > [2018-11-05 13:07:31+0000] Running test suite only with 'harness' > [2018-11-05 13:07:31+0000] make distclean ... > [2018-11-05 13:07:31+0000] Smoking patch > adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 v5.26.2-85-gadf1b5d28a > ##### > > Again, everything *looks* good. But on the very next line we see: > > ##### > [2018-11-05 13:07:31+0000] Smoking branch smoke-me/jkeenan/cleanup-t- > io-fs > ##### > > Where did that come from? > > I grepped in the source code for those log messages and found this: > > ##### > $ ack 'Smoking (branch|patch)' lib/Test > lib/Test/Smoke.pm > 179: $smoker->ttylog("Smoking patch $patch->[0] $patch-
> >[1]\n");
> 180: $smoker->ttylog("Smoking branch $patch->[2]\n") if $patch-
> >[2];
> > lib/Test/Smoke/Reporter.pm > 272: if (/^Smoking branch (\S+)/) { > > lib/Test/Smoke/App/RunSmoke.pm > 103: $smoker->ttylog("Smoking patch $patch->[0] > @{[$patch->[1]||'']}\n"); > 104: $smoker->ttylog("Smoking branch $patch->[2]\n") if $patch-
> >[2];
> ##### > > Now, I don't know whether the smoke run was working in > lib/Test/Smoke.pm > or lib/Test/Smoke/App/RunSmoke.pm. But it appears that in either case > $patch is a hashref which is populated by reading a hidden file in the > perl-current directory: .patch. I've included that in the tarball but > for visibility I've called in 'dot.patch'. For the problematic > smoke-test run its contents were: > > ##### > smoke-me/jkeenan/cleanup-t-io-fs 2018-11-04.20:55:50 > adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 v5.26.2-85-gadf1b5d28a > ##### > > Splitting on the whitespace, we have: > > * The name of the branch that got smoked -- but which was not the > branch > designated in smokecurrent.gitbranch. > > * A datestamp which I think was the time of the *start* of the > *previous* smoke run, i.e., the run reported in > http://perl5.test-smoke.org/report/73583. > > * The SHA of head of the branch which *should have been run* but which > was not. > > * The Git-id of the SHA in the preceding item. > > This discrepancy is also reflected in the other files output by > Test-Smoke in the problematic run. For example, in > defective- > 20181105/adf1b5d2/outadf1b5d28a4fd0e20bbbb72cab062fdd520cb065.out, > we have: > > ##### > Smoking patch adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 > v5.26.2-85-gadf1b5d28a > Smoking branch smoke-me/jkeenan/cleanup-t-io-fs > ##### > > The "patch" line reports the SHA and Git-id of the branch I wanted to > smoke. The "branch" line shows the branch actually and mistakenly > smoked. > > This is as far as I've been able to diagnose this so far. Since I > want > to resume smoke-testing blead on this machine, I'll soon be > overwriting > the contents of my 'git-perl' and 'perl-current' directories. I will > do > that in 24 hours, so that if there's any information you need from > those > directories that I have not already provided in the tarball, please > let > me know ASAP. > > Thank you very much. > Jim Keenan
I have just now been able to reproduce this problem on a different host and on a different operating system. On my linode my last previous smoke test run was: ##### URL|Git-id|Branch|Smoke date|Status http://perl5.test-smoke.org/report/72937|v5.29.4-11-g36b19dd|blead|2018-10-23 17:03:16+00|FAIL ##### Just now I edited my smokecurrent.gitbranch file to place 'maint-5.26' in the first row. ##### $ head -3 smokecurrent.gitbranch maint-5.26 blead smoke-me/jkeenan/133586-file-glob-glob ##### I then kicked off a new smoke test run. It has not completed, but from examining the log file I can already see that the branch actually being smoked (incorrectly) is the 3rd branch listed in smokecurrent.gitbranch -- not the first. ##### [li796-253:perl-current] 527 $ git status | head -3 On branch smoke-me/jkeenan/133586-file-glob-glob Your branch and 'origin/smoke-me/jkeenan/133586-file-glob-glob' have diverged, and have 323 and 3406 different commits each, respectively. ##### ##### [li796-253:perl-current] 528 $ cat .patch smoke-me/jkeenan/133586-file-glob-glob 2018-11-04.20:55:50 adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 v5.26.2-85-gadf1b5d ##### Thank you very much. Jim Keenan
On Mon Nov 05 18:27:51 2018, JKEENAN wrote: Show quoted text
> On Mon Nov 05 18:02:50 2018, jkeenan@pobox.com wrote:
> > Once again I have to report a situation where Test-Smoke did not > > smoke > > the branch I requested. > > > > I reported an instance of this problem several months ago as "Problem > > 2" > > in https://rt.cpan.org/Ticket/Display.html?id=125927. Most of my > > subsequent posts in that ticket concerned "Problem 1". I haven't had > > a > > response to either problem, but since Problem 2 has reoccurred let's > > put > > all discussion of that problem in one new ticket. My original > > statement > > of Problem 2 is attached. > > > > Here is the new instance. > > > > I manually kick off smoke-test runs of blead and other branches on a > > FreeBSD-11.2-STABLE host, 'perlmonger.nycbug.org'. The 2 most recent > > runs on that platform (as of the composition of this message, and as > > displayed at http://perl5.test-smoke.org/search with appropriate > > drop-down selections) are: > > > > ##### > > URL|Git-id|Branch|Smoke date|Status > > http://perl5.test-smoke.org/report/73583|v5.29.4-34- > > g328d907979|blead|2018-11-05 > > 00:23:31+00|PASS > > http://perl5.test-smoke.org/report/73607|v5.26.2-85- > > gadf1b5d28a|smoke-me/jkeenan/cleanup-t-io-fs|2018-11-05 > > 13:07:31+00|PASS > > ##### > > > > Now, just looking at that, you might wonder about the "v5.26.2" in > > the > > Git-id of run 73607. For one thing, another run on that page lists a > > run of the "smoke-me/jkeenan/cleanup-t-io-fs" branch but with a Git- > > id > > beginning "v5.29.4". > > > > ##### > > URL|Git-id|Branch|Smoke date|Status > > http://perl5.test-smoke.org/report/73178|v5.29.4-22- > > g167698623c|smoke-me/jkeenan/cleanup-t-io-fs|2018-10-29 > > 22:40:15+00|PASS > > ##### > > > > Here's the problem: What I *wanted* to test earlier today was the > > 'maint-5.26' branch, *not* the smoke-me/jkeenan/cleanup-t-io-fs > > branch. > > In my 'smokecurrent.gitbranch' file the first 3 entries at the point > > when I kicked off the smoke-test run were: > > > > ##### > > maint-5.26 > > blead > > smoke-me/jkeenan/cleanup-t-io-fs > > ##### > > > > (See tarball attached for > > 'defective-20181105/adf1b5d2/smokecurrent.gitbranch' and other files > > subsequently mentioned in this report.) > > > > Suppose that I go into the 'git-perl' directory of my Test-Smoke rig > > and > > call 'git status'. As recorded in > > defective-20181105/adf1b5d2/git-perl.git.status.txt, I get: > > > > ##### > > On branch maint-5.26 > > Your branch is up to date with 'origin/maint-5.26'. > > > > nothing to commit, working tree clean > > ##### > > > > Everything fine there. Now supposed I go next door to the > > 'perl-current' directory in which the run is executed. As recorded > > in > > defective-20181105/adf1b5d2/perl-current.git.status.txt, I get: > > > > ##### > > $ cat perl-current.git.status.txt > > On branch smoke-me/jkeenan/cleanup-t-io-fs > > Your branch and 'origin/smoke-me/jkeenan/cleanup-t-io-fs' have > > diverged, > > and have 323 and 3496 different commits each, respectively. > > (use "git pull" to merge the remote branch into yours) > > > > Changes not staged for commit: > > (use "git add <file>..." to update what will be committed) > > (use "git checkout -- <file>..." to discard changes in working > > directory) > > > > modified: patchlevel.h > > > > Untracked files: > > (use "git add <file>..." to include in what will be committed) > > > > mktest.jsn > > mktest.out > > mktest.rpt > > patchlevel.bak > > > > no changes added to commit (use "git add" and/or "git commit -a") > > ##### > > > > Big problem! The 'perl-current' directory was not updated to hold > > 'maint-5.26'. Worse, it's not even holding blead any more. For some > > reason it appears to have done a checkout of a branch from more than > > a > > week ago! > > > > We can also spot problems developing in the log file. I've included > > both the full .log file and a 'head' of it in the tarball. If we > > look > > at defective-20181105/adf1b5d2/adf1b5d2.head.log, we see: > > > > ##### > > [2018-11-05 13:07:26+0000] ==> Starting synctree > > [2018-11-05 13:07:26+0000] qx[/usr/local/bin/git remote update > > --prune
> > 2> &1]
> > [2018-11-05 13:07:28+0000] qx[/usr/local/bin/git checkout maint-5.26 > > [2018-11-05 13:07:28+0000] 2>&1] > > Switched to a new branch 'maint-5.26' > > [2018-11-05 13:07:29+0000] qx[/usr/local/bin/git reset --hard > > origin/maint-5.26 > > [2018-11-05 13:07:29+0000] 2>&1] > > [2018-11-05 13:07:29+0000] qx[/usr/local/bin/git clean -dfx 2>&1] > > [2018-11-05 13:07:29+0000] qx[/usr/local/bin/git fetch origin 2>&1] > > [2018-11-05 13:07:30+0000] qx[/usr/local/bin/git checkout maint-5.26 > > [2018-11-05 13:07:30+0000] 2>&1] > > ##### > > > > So far so good. > > > > ##### > > error: Your local changes to the following files would be overwritten > > by > > checkout: > > patchlevel.h > > Please commit your changes or stash them before you switch branches. > > Aborting > > ##### > > > > I get that on every smoke test run. > > > > ##### > > [2018-11-05 13:07:30+0000] qx[/usr/local/bin/git reset --hard > > origin/maint-5.26 > > [2018-11-05 13:07:30+0000] 2>&1] > > [2018-11-05 13:07:31+0000] qx[/usr/local/bin/perl5 > > Porting/make_dot_patch.pl > .patch] > > [2018-11-05 13:07:31+0000] /home/jkeenan/p5smoke/perl-current is now > > up > > to patchlevel adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 > > ##### > > > > Everything *looks* good here. Commit adf1b5d28 was the then-current > > head > > of the maint-5.26 branch: > > > > ##### > > commit adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 (origin/maint-5.26) > > Author: Steve Hay <steve.m.hay@googlemail.com> > > AuthorDate: Sun Nov 4 20:55:50 2018 +0000 > > Commit: Steve Hay <steve.m.hay@googlemail.com> > > CommitDate: Sun Nov 4 20:55:50 2018 +0000 > > > > Import perl5280delta.pod > > ##### > > > > Continuing: > > > > ##### > > [2018-11-05 13:07:31+0000] ==> Starting runsmoke > > [2018-11-05 13:07:31+0000] [./tssmokeperl.pl] > > chdir(/home/jkeenan/p5smoke/perl-current) > > [2018-11-05 13:07:31+0000] Setup alarm: Mon Nov 5 19:07:31 2018 > > [2018-11-05 13:07:31+0000] qx[/usr/local/bin/perl5 -e "require > > q[/home/jkeenan/p5smoke/perl-current/cpan/Test- > > Harness/lib/Test/Harness.pm];print > > Test::Harness->VERSION" 2>&1] > > [2018-11-05 13:07:31+0000] Found: Test::Harness version 3.38. > > [2018-11-05 13:07:31+0000] Reading build configurations from > > /home/jkeenan/p5smoke/perlcurrent.cfg > > [2018-11-05 13:07:31+0000] Reading 'Policy.sh' from default content > > (v=1) > > [2018-11-05 13:07:31+0000] Running test suite only with 'harness' > > [2018-11-05 13:07:31+0000] make distclean ... > > [2018-11-05 13:07:31+0000] Smoking patch > > adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 v5.26.2-85-gadf1b5d28a > > ##### > > > > Again, everything *looks* good. But on the very next line we see: > > > > ##### > > [2018-11-05 13:07:31+0000] Smoking branch smoke-me/jkeenan/cleanup-t- > > io-fs > > ##### > > > > Where did that come from? > > > > I grepped in the source code for those log messages and found this: > > > > ##### > > $ ack 'Smoking (branch|patch)' lib/Test > > lib/Test/Smoke.pm > > 179: $smoker->ttylog("Smoking patch $patch->[0] $patch-
> > > [1]\n");
> > 180: $smoker->ttylog("Smoking branch $patch->[2]\n") if > > $patch-
> > > [2];
> > > > lib/Test/Smoke/Reporter.pm > > 272: if (/^Smoking branch (\S+)/) { > > > > lib/Test/Smoke/App/RunSmoke.pm > > 103: $smoker->ttylog("Smoking patch $patch->[0] > > @{[$patch->[1]||'']}\n"); > > 104: $smoker->ttylog("Smoking branch $patch->[2]\n") if > > $patch-
> > > [2];
> > ##### > > > > Now, I don't know whether the smoke run was working in > > lib/Test/Smoke.pm > > or lib/Test/Smoke/App/RunSmoke.pm. But it appears that in either > > case > > $patch is a hashref which is populated by reading a hidden file in > > the > > perl-current directory: .patch. I've included that in the tarball > > but > > for visibility I've called in 'dot.patch'. For the problematic > > smoke-test run its contents were: > > > > ##### > > smoke-me/jkeenan/cleanup-t-io-fs 2018-11-04.20:55:50 > > adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 v5.26.2-85-gadf1b5d28a > > ##### > > > > Splitting on the whitespace, we have: > > > > * The name of the branch that got smoked -- but which was not the > > branch > > designated in smokecurrent.gitbranch. > > > > * A datestamp which I think was the time of the *start* of the > > *previous* smoke run, i.e., the run reported in > > http://perl5.test-smoke.org/report/73583. > > > > * The SHA of head of the branch which *should have been run* but > > which > > was not. > > > > * The Git-id of the SHA in the preceding item. > > > > This discrepancy is also reflected in the other files output by > > Test-Smoke in the problematic run. For example, in > > defective- > > 20181105/adf1b5d2/outadf1b5d28a4fd0e20bbbb72cab062fdd520cb065.out, > > we have: > > > > ##### > > Smoking patch adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 > > v5.26.2-85-gadf1b5d28a > > Smoking branch smoke-me/jkeenan/cleanup-t-io-fs > > ##### > > > > The "patch" line reports the SHA and Git-id of the branch I wanted to > > smoke. The "branch" line shows the branch actually and mistakenly > > smoked. > > > > This is as far as I've been able to diagnose this so far. Since I > > want > > to resume smoke-testing blead on this machine, I'll soon be > > overwriting > > the contents of my 'git-perl' and 'perl-current' directories. I will > > do > > that in 24 hours, so that if there's any information you need from > > those > > directories that I have not already provided in the tarball, please > > let > > me know ASAP. > > > > Thank you very much. > > Jim Keenan
> > I have just now been able to reproduce this problem on a different > host and on a different operating system. > > On my linode my last previous smoke test run was: > > ##### > URL|Git-id|Branch|Smoke date|Status > http://perl5.test-smoke.org/report/72937|v5.29.4-11- > g36b19dd|blead|2018-10-23 17:03:16+00|FAIL > ##### > > Just now I edited my smokecurrent.gitbranch file to place 'maint-5.26' > in the first row. > > ##### > $ head -3 smokecurrent.gitbranch > maint-5.26 > blead > smoke-me/jkeenan/133586-file-glob-glob > ##### > > I then kicked off a new smoke test run. It has not completed, but > from examining the log file I can already see that the branch actually > being smoked (incorrectly) is the 3rd branch listed in > smokecurrent.gitbranch -- not the first. > > ##### > [li796-253:perl-current] 527 $ git status | head -3 > On branch smoke-me/jkeenan/133586-file-glob-glob > Your branch and 'origin/smoke-me/jkeenan/133586-file-glob-glob' have > diverged, > and have 323 and 3406 different commits each, respectively. > ##### > > ##### > [li796-253:perl-current] 528 $ cat .patch > smoke-me/jkeenan/133586-file-glob-glob 2018-11-04.20:55:50 > adf1b5d28a4fd0e20bbbb72cab062fdd520cb065 v5.26.2-85-gadf1b5d > ##### > > Thank you very much. > Jim Keenan
The latest run of an erroneously tested branch: http://perl5.test-smoke.org/report/73636
Hi Jim, Sorry for the late reaction, I'm kept quite busy by the day-time-job :( I've looked at your log and see what's going on, but I havent been able to reproduce that. The only thing I can think of is some setting in your .gitconfig that I do not have, but we should be inert to those in the smoke process. It is by design that we update `patchlevel.h` before we start the smoke, so we must deal with the concequences of that. To make sure we start updating the working-directory (perl-current) on a clean state, I'll add anotther `git reset --hard HEAD` as a first command. Another thing I noticed is that you have multiple branches in your .gitbranch-file. You should realise that Test::Smoke::Syncer::Git only ever reads the 1st line of that file. I'll try and get a Beta out this weekend. Thanks for reporting your problem Good luck, -- Abe.
On Fri Nov 09 07:25:46 2018, ABELTJE wrote: Show quoted text
> Hi Jim, > > Sorry for the late reaction, I'm kept quite busy by the day-time-job > :( > > I've looked at your log and see what's going on, but I havent been > able to reproduce that. > The only thing I can think of is some setting in your .gitconfig that > I do not have, but we should be inert to those in the smoke process. > > It is by design that we update `patchlevel.h` before we start the > smoke, so we must deal with the concequences of that. > > To make sure we start updating the working-directory (perl-current) on > a clean state, I'll add anotther `git reset --hard HEAD` as a first > command. >
Thanks, I look forward to that. Show quoted text
> Another thing I noticed is that you have multiple branches in your > .gitbranch-file. You should realise that Test::Smoke::Syncer::Git only > ever reads the 1st line of that file. >
Yes, but this enables me to keep a crude log of which branches I've smoked. (I kick off my smokes manually rather than by cron.) Show quoted text
> I'll try and get a Beta out this weekend. > > Thanks for reporting your problem > > Good luck, > -- Abe.
On Fri Nov 09 07:25:46 2018, ABELTJE wrote: Show quoted text
> Hi Jim, > > Sorry for the late reaction, I'm kept quite busy by the day-time-job > :( > > I've looked at your log and see what's going on, but I havent been > able to reproduce that. > The only thing I can think of is some setting in your .gitconfig that > I do not have, but we should be inert to those in the smoke process. > > It is by design that we update `patchlevel.h` before we start the > smoke, so we must deal with the concequences of that. > > To make sure we start updating the working-directory (perl-current) on > a clean state, I'll add anotther `git reset --hard HEAD` as a first > command. > > Another thing I noticed is that you have multiple branches in your > .gitbranch-file. You should realise that Test::Smoke::Syncer::Git only > ever reads the 1st line of that file. > > I'll try and get a Beta out this weekend. > > Thanks for reporting your problem > > Good luck, > -- Abe.
Today I spent time evaluating Test-Smoke-1.72_06. As reported in other RT tickets (e.g., https://rt.cpan.org/Ticket/Attachment/1819494/978982/smoke-tests-with-1.72_06.csv), I conducted a series of smoke-test runs for different branches or commits on FreeBSD-11. Between these runs the only change I made to my configuration was to move the branch in question to the top line of 'smokecurrent.gitbranch'. AFAICT in each instance the branch that I designated for smoking was the branch that actually got smoked. So I think this ticket will be closable once a Test-Smoke-1.73 holding your revisions is made to CPAN. (Of course, since we've seen this problem before, this may not be the last we see of this. :-( ). Thank you very much. Jim Keenan