Skip Menu |

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

Report information
The Basics
Id: 120008
Status: resolved
Priority: 0/
Queue: Test-Smoke

People
Owner: Nobody in particular
Requestors: jkeenan [...] cpan.org
Cc:
AdminCc:

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



Subject: Test-Smoke failing to update branch being tested
This is a bug report which provides an additional instance of a problem originally reported to the perl.qa mailing list/newsgroup (thread starting at: http://www.nntp.perl.org/group/perl.qa/2017/01/msg13734.html). I have a VM of FreeBSD-10.3 in which I customarily test blead and/or smoke-me branches in the Perl 5 core distribution. When I wish to test a smoke-me branch, I set the first line of 'p5smoke/install/smokecurrent.gitbranch' to the name of that branch as it appears on remote 'origin'. I then call 'cd ~/p5smoke/install; sh ./smokecurrent.sh' and let Test-Smoke do its thing. On Jan 26 at about 2200 localtime (Jan 27 0300 UTC) I conducted a smoke test run on the 'smoke-me/jkeenan/130635-storable' branch: ##### $ grep -n smoke_branch jsnd6115793d6cc41755a3ed4baaa38d30653656f41.jsn 85: "smoke_branch" : "smoke-me/jkeenan/130635-storable", ##### The smoke test run -- whose report you can see at http://perl5.test-smoke.org/report/53530 -- resulted in FAILs: ##### Failures: (common-args) -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" [stdio/perlio] -DDEBUGGING -Duseithreads ../t/porting/exec-bit.t.....................................FAILED 97-98 ../t/porting/podcheck.t.....................................FAILED 183 ##### These failures had nothing to do with the branch being smoked. That branch had been created minutes earlier by pushing one commit on top of Perl 5 blead. Those failures occurred in blead, originating in this commit: ##### commit 1f74a12bfce8b82144fa7fef29618af1e8023298 Author: Christian Millour <cm.perl@abtela.com> Date: Thu Jan 19 11:49:03 2017 +0100 document nature and use of $a and $b in sort() Signed-off-by: Abigail <abigail@abigail.be> ##### I switched to a separate git checkout directory that I maintain on the same VM, updated and tested blead, confirmed and corrected the two test failures and pushed the corrections to blead. ##### commit 475b224feea308464e18cc6bef788e7a152afa51 Author: James E Keenan <jkeenan@cpan.org> AuthorDate: Thu Jan 26 22:44:03 2017 Commit: James E Keenan <jkeenan@cpan.org> CommitDate: Thu Jan 26 22:45:26 2017 Correct file mode and line lengths to keep porting tests happy. ##### This morning I returned to that VM, moved into p5smoke/install and updated smokecurrent.gitbranch to have its first line read 'blead': ##### $ head -5 smokecurrent.gitbranch blead smoke-me/jkeenan/130635-storable smoke-me/jkeenan/revert-cpan-118470 smoke-me/jkeenan/77934-threads smoke-me/jkeenan/petdance/130519-remove-two-unused-macros ##### I then called 'sh ./smokecurrent.sh' to kick off another smoke test run, this time for 'blead'. At that point additional commits had been made to blead. HEAD was: ##### commit 9a7b7fba267b8910dbea2920dd675030f796320c Author: Yves Orton <demerphq@gmail.com> AuthorDate: Fri Jan 27 04:23:05 2017 Commit: Yves Orton <demerphq@gmail.com> CommitDate: Fri Jan 27 04:23:24 2017 ##### When the smoke test run completed, however, I was surprised to see that the commit being tested -- HEAD in the p5smoke/perl-current and p5smoke/git-perl directories -- was still commit 1f74a12bfce8b82144fa7fef29618af1e8023298 -- the commit which caused the porting test errors and for which I had already pushed corrections to blead! Here is the 'sysinfo' element from jsn1f74a12bfce8b82144fa7fef29618af1e8023298.jsn: ##### "sysinfo" : { "lang" : null, "smoke_date" : "2017-01-27 08:11:48 -0500", "git_id" : "1f74a12bfce8b82144fa7fef29618af1e8023298", "git_describe" : "v5.25.9-49-g1f74a12", "osname" : "freebsd", "smoker_version" : "0.046", "test_jobs" : "8", "smoke_revision" : "1.70", "osversion" : "10.3-RELEASE", "username" : "jkeenan", "lc_all" : null, "smoke_branch" : "blead", "smoke_perl" : "5.20.3", "reporter" : null, "cpu_description" : "Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz", "hostname" : "localhost", "cpu_count" : "1", "user_note" : "Occasional failures observed in long-running tests in:\n t/re/speed.t\n t/re/speed_thr.t\n cpan/Memoize/t/expmod_t.t\n dist/Time-HiRes/t/alarm.t\n", "smoke_version" : "1.70", "reporter_version" : "0.053", "duration" : 2349, "perl_id" : "5.25.10", "config_count" : 1, "architecture" : "amd64" }, ##### Not surprisingly, since 'blead' had not been moved forward from the commit at which the porting test errors were introduced, those errors were still present: ##### "failures" : [ { "extra" : [ "97-98" ], "test" : "../t/porting/exec-bit.t", "status" : "FAILED" }, { "extra" : [ "183" ], "status" : "FAILED", "test" : "../t/porting/podcheck.t" } ##### Here is the first part of the smokecurrent.log for this run -- with some comments: ##### [2017-01-27 08:11:22-0500] Read configuration from: /usr/home/jkeenan/p5smoke/install/smokecurrent_config [2017-01-27 08:11:22-0500] Commitlevel before sync: d6115793d6cc41755a3ed4baaa38d30653656f41 # d611579 was HEAD in the previous branch being smoked: smoke-me/jkeenan/130635-storable [2017-01-27 08:11:22-0500] ==> Starting synctree [2017-01-27 08:11:22-0500] Reading branch to smoke from: '/usr/home/jkeenan/p5smoke/install/smokecurrent.gitbranch' [2017-01-27 08:11:22-0500] In pwd(/usr/home/jkeenan/p5smoke/git-perl) running: [2017-01-27 08:11:22-0500] qx[/usr/local/bin/git pull --all] From git://perl5.git.perl.org/perl 1f74a12..9a7b7fb blead -> origin/blead [2017-01-27 08:11:37-0500] Fetching origin [2017-01-27 08:11:37-0500] Already up-to-date. [2017-01-27 08:11:37-0500] In pwd(/usr/home/jkeenan/p5smoke/git-perl) running: [2017-01-27 08:11:37-0500] qx[/usr/local/bin/git remote prune origin] [2017-01-27 08:11:38-0500] In pwd(/usr/home/jkeenan/p5smoke/git-perl) running: [2017-01-27 08:11:38-0500] qx[/usr/local/bin/git checkout blead [2017-01-27 08:11:38-0500] 2>&1] Switched to branch 'blead' [2017-01-27 08:11:41-0500] Your branch is behind 'origin/blead' by 7 commits, and can be fast-forwarded. [2017-01-27 08:11:41-0500] (use "git pull" to update your local branch) # Note: No indication that 'git pull' was actually run! Why not? [2017-01-27 08:11:41-0500] In pwd(/usr/home/jkeenan/p5smoke/perl-current) running: [2017-01-27 08:11:41-0500] qx[/usr/local/bin/git reset --hard] # Note: Although 'man git-reset' is not explicit about this, we can probably assume # that 'git reset --hard' with no <commit> resets to HEAD -- i.e., no update to checkout. [2017-01-27 08:11:43-0500] HEAD is now at d611579 Fix stack buffer overflow in deserialization of hooks. ##### So why does Test-Smoke not update the branch being tested in cases like this? Thank you very much. Jim Keenan
RT-Send-CC: demerphq [...] gmail.com
On Fri Jan 27 11:07:33 2017, JKEENAN wrote: Show quoted text
> This is a bug report which provides an additional instance of a > problem originally reported to the perl.qa mailing list/newsgroup > (thread starting at: > http://www.nntp.perl.org/group/perl.qa/2017/01/msg13734.html). > > I have a VM of FreeBSD-10.3 in which I customarily test blead and/or > smoke-me branches in the Perl 5 core distribution. When I wish to > test a smoke-me branch, I set the first line of > 'p5smoke/install/smokecurrent.gitbranch' to the name of that branch as > it appears on remote 'origin'. I then call 'cd ~/p5smoke/install; sh > ./smokecurrent.sh' and let Test-Smoke do its thing. > > On Jan 26 at about 2200 localtime (Jan 27 0300 UTC) I conducted a > smoke test run on the 'smoke-me/jkeenan/130635-storable' branch: > > ##### > $ grep -n smoke_branch jsnd6115793d6cc41755a3ed4baaa38d30653656f41.jsn > 85: "smoke_branch" : "smoke-me/jkeenan/130635-storable", > ##### > > The smoke test run -- whose report you can see at http://perl5.test- > smoke.org/report/53530 -- resulted in FAILs: > > ##### > Failures: (common-args) -Doptimize="-O2 -pipe -fstack-protector -fno- > strict-aliasing" > [stdio/perlio] -DDEBUGGING -Duseithreads > ../t/porting/exec-bit.t.....................................FAILED > 97-98 > ../t/porting/podcheck.t.....................................FAILED > 183 > ##### > > These failures had nothing to do with the branch being smoked. That > branch had been created minutes earlier by pushing one commit on top > of Perl 5 blead. Those failures occurred in blead, originating in > this commit: > > ##### > commit 1f74a12bfce8b82144fa7fef29618af1e8023298 > Author: Christian Millour <cm.perl@abtela.com> > Date: Thu Jan 19 11:49:03 2017 +0100 > > document nature and use of $a and $b in sort() > > Signed-off-by: Abigail <abigail@abigail.be> > ##### > > I switched to a separate git checkout directory that I maintain on the > same VM, updated and tested blead, confirmed and corrected the two > test failures and pushed the corrections to blead. > > ##### > commit 475b224feea308464e18cc6bef788e7a152afa51 > Author: James E Keenan <jkeenan@cpan.org> > AuthorDate: Thu Jan 26 22:44:03 2017 > Commit: James E Keenan <jkeenan@cpan.org> > CommitDate: Thu Jan 26 22:45:26 2017 > > Correct file mode and line lengths to keep porting tests happy. > ##### > > This morning I returned to that VM, moved into p5smoke/install and > updated smokecurrent.gitbranch to have its first line read 'blead': > > ##### > $ head -5 smokecurrent.gitbranch > blead > smoke-me/jkeenan/130635-storable > smoke-me/jkeenan/revert-cpan-118470 > smoke-me/jkeenan/77934-threads > smoke-me/jkeenan/petdance/130519-remove-two-unused-macros > ##### > > I then called 'sh ./smokecurrent.sh' to kick off another smoke test > run, this time for 'blead'. At that point additional commits had been > made to blead. HEAD was: > > ##### > commit 9a7b7fba267b8910dbea2920dd675030f796320c > Author: Yves Orton <demerphq@gmail.com> > AuthorDate: Fri Jan 27 04:23:05 2017 > Commit: Yves Orton <demerphq@gmail.com> > CommitDate: Fri Jan 27 04:23:24 2017 > ##### > > When the smoke test run completed, however, I was surprised to see > that the commit being tested -- HEAD in the p5smoke/perl-current and > p5smoke/git-perl directories -- was still commit > 1f74a12bfce8b82144fa7fef29618af1e8023298 -- the commit which caused > the porting test errors and for which I had already pushed corrections > to blead! > > Here is the 'sysinfo' element from > jsn1f74a12bfce8b82144fa7fef29618af1e8023298.jsn: > > ##### > "sysinfo" : { > "lang" : null, > "smoke_date" : "2017-01-27 08:11:48 -0500", > "git_id" : "1f74a12bfce8b82144fa7fef29618af1e8023298", > "git_describe" : "v5.25.9-49-g1f74a12", > "osname" : "freebsd", > "smoker_version" : "0.046", > "test_jobs" : "8", > "smoke_revision" : "1.70", > "osversion" : "10.3-RELEASE", > "username" : "jkeenan", > "lc_all" : null, > "smoke_branch" : "blead", > "smoke_perl" : "5.20.3", > "reporter" : null, > "cpu_description" : "Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz", > "hostname" : "localhost", > "cpu_count" : "1", > "user_note" : "Occasional failures observed in long-running tests > in:\n t/re/speed.t\n t/re/speed_thr.t\n > cpan/Memoize/t/expmod_t.t\n dist/Time-HiRes/t/alarm.t\n", > "smoke_version" : "1.70", > "reporter_version" : "0.053", > "duration" : 2349, > "perl_id" : "5.25.10", > "config_count" : 1, > "architecture" : "amd64" > }, > ##### > > Not surprisingly, since 'blead' had not been moved forward from the > commit at which the porting test errors were introduced, those errors > were still present: > > ##### > "failures" : [ > { > "extra" : [ > "97-98" > ], > "test" : "../t/porting/exec-bit.t", > "status" : "FAILED" > }, > { > "extra" : [ > "183" > ], > "status" : "FAILED", > "test" : "../t/porting/podcheck.t" > } > ##### > > Here is the first part of the smokecurrent.log for this run -- with > some comments: > > ##### > [2017-01-27 08:11:22-0500] Read configuration from: > /usr/home/jkeenan/p5smoke/install/smokecurrent_config > [2017-01-27 08:11:22-0500] Commitlevel before sync: > d6115793d6cc41755a3ed4baaa38d30653656f41 > > # d611579 was HEAD in the previous branch being smoked: smoke- > me/jkeenan/130635-storable > > [2017-01-27 08:11:22-0500] ==> Starting synctree > [2017-01-27 08:11:22-0500] Reading branch to smoke from: > '/usr/home/jkeenan/p5smoke/install/smokecurrent.gitbranch' > [2017-01-27 08:11:22-0500] In pwd(/usr/home/jkeenan/p5smoke/git-perl) > running: > [2017-01-27 08:11:22-0500] qx[/usr/local/bin/git pull --all] > From git://perl5.git.perl.org/perl > 1f74a12..9a7b7fb blead -> origin/blead > [2017-01-27 08:11:37-0500] Fetching origin > [2017-01-27 08:11:37-0500] Already up-to-date. > [2017-01-27 08:11:37-0500] In pwd(/usr/home/jkeenan/p5smoke/git-perl) > running: > [2017-01-27 08:11:37-0500] qx[/usr/local/bin/git remote prune origin] > [2017-01-27 08:11:38-0500] In pwd(/usr/home/jkeenan/p5smoke/git-perl) > running: > [2017-01-27 08:11:38-0500] qx[/usr/local/bin/git checkout blead > [2017-01-27 08:11:38-0500] 2>&1] > Switched to branch 'blead' > [2017-01-27 08:11:41-0500] Your branch is behind 'origin/blead' by 7 > commits, and can be fast-forwarded. > [2017-01-27 08:11:41-0500] (use "git pull" to update your local > branch) > > # Note: No indication that 'git pull' was actually run! Why not? > > [2017-01-27 08:11:41-0500] In pwd(/usr/home/jkeenan/p5smoke/perl- > current) running: > [2017-01-27 08:11:41-0500] qx[/usr/local/bin/git reset --hard] > > # Note: Although 'man git-reset' is not explicit about this, we can > probably assume > # that 'git reset --hard' with no <commit> resets to HEAD -- i.e., no > update to checkout. > > [2017-01-27 08:11:43-0500] HEAD is now at d611579 Fix stack buffer > overflow in deserialization of hooks. > ##### > > So why does Test-Smoke not update the branch being tested in cases > like this? > > Thank you very much. > Jim Keenan
Pull request filed: https://github.com/abeltje/Test-Smoke/pull/26
Subject: Re: [rt.cpan.org #120008] Test-Smoke failing to update branch being tested
Date: Sun, 29 Jan 2017 17:35:34 +0100
To: bug-Test-Smoke [...] rt.cpan.org
From: demerphq <demerphq [...] gmail.com>
On 29 January 2017 at 15:06, James E Keenan via RT <bug-Test-Smoke@rt.cpan.org> wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=120008 > > > On Fri Jan 27 11:07:33 2017, JKEENAN wrote: > Pull request filed: > https://github.com/abeltje/Test-Smoke/pull/26
I had a quick scan of your patch. While i have no doubt it works, I find it really weird that smokers reclone every time, and i find it really weird to see $gitout = $gitbin->run(rebase => 'origin/blead'); in the smoker. A smoker should never rebase. Why is that happening? I would expect to see pseudo code like this: git fetch origin foreach $branch in `git branch -r` like /smoke-me/ git checkout $branch git reset --hard origin/$branch run_smoke(); next; It should never rebase, it should never merge, it should never pull, and it should not have to reclone every time. So why does the code do that? Am i missing something? I will try to find some dedicated time to review the smoker code more closely, but right now I dont have the round tuits. cheers, Yves -- perl -Mre=debug -e "/just|another|perl|hacker/"
On Sun Jan 29 11:36:12 2017, demerphq@gmail.com wrote: Show quoted text
> On 29 January 2017 at 15:06, James E Keenan via RT > <bug-Test-Smoke@rt.cpan.org> wrote:
> > <URL: https://rt.cpan.org/Ticket/Display.html?id=120008 > > > > > On Fri Jan 27 11:07:33 2017, JKEENAN wrote: > > Pull request filed: > > https://github.com/abeltje/Test-Smoke/pull/26
> > I had a quick scan of your patch. While i have no doubt it works, I > find it really weird that smokers reclone every time, and i find it > really weird to see > > $gitout = $gitbin->run(rebase => 'origin/blead'); > > in the smoker. A smoker should never rebase. Why is that happening? > > I would expect to see pseudo code like this: > > git fetch origin > foreach $branch in `git branch -r` like /smoke-me/ > git checkout $branch > git reset --hard origin/$branch > run_smoke(); > next; > > It should never rebase, it should never merge, it should never pull, > and it should not have to reclone every time. So why does the code do > that? Am i missing something? > > I will try to find some dedicated time to review the smoker code more > closely, but right now I dont have the round tuits. > > cheers, > Yves >
I was ill/afk so could not respond sooner. I have revised the code in the pull request so that it no longer uses 'git rebase' but instead uses 'git revert' in one place per your suggestion. Thank you very much. Jim Keenan
https://github.com/abeltje/Test-Smoke/pull/26 was adapted and integrated in release 1.70_9