All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC OSSTEST v2] ap-fetch-*: Support $AP_FETCH_PLACEHOLDERS envvar which outputs a placeholder
@ 2015-10-09 13:21 Ian Campbell
  2015-10-09 16:06 ` Ian Jackson
  0 siblings, 1 reply; 3+ messages in thread
From: Ian Campbell @ 2015-10-09 13:21 UTC (permalink / raw)
  To: ian.jackson, xen-devel; +Cc: Ian Campbell

And use this in standalone-generate-dump-flight-runvars. In general I
don't think we are interested in the specific revision_* runvars when
using this tool but it can be avoided using AP_FETCH_PLACEHOLDERS=n
when calling standalone-generate-dump-flight-runvars.

This is quicker even than using memoisation on the ap-fetch
invocations and produces output like:

libvirt                    build-amd64                                        revision_xen            ap-fetch-version-baseline:xen-unstable

By doing this the diffs of before and after changes to e.g.
make-flight don't pickup noise if a something/someone does a push in
the middle.

The memoisation bits of standalone-generate-dump-flight-runvars are
disable if AP_FETCH_PLACEHOLDERS=y.

Still RFC because of these sqlite errors

    DBD::SQLite::db do failed: UNIQUE constraint failed: jobs.flight, jobs.job [for Statement "        INSERT INTO jobs VALUES (?,'build-i386-xsm','build','queued')

or

    DBD::SQLite::db do failed: database is locked [for Statement " DELETE FROM runvars WHERE flight = ?  "] at Osstest/JobDB/Standalone.pm line 67.
    DBD::SQLite::db do failed: database is locked [for Statement " DELETE FROM runvars WHERE flight = ?  "] at Osstest/JobDB/Standalone.pm line 67.

Which consistently take out the use of standalone-generate-dump-flight-runvars
with this patch. I think probably because ap-fetch-* now complete
instantly which makes the standalone-generate-dump-flight-runvars far
more thunderous on the DB.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
v2:
  - Fix typo which would activate this mode unless
    $AP_FETCH_PLACEHOLDERS=x.
  - Require $AP_FETCH_PLACEHOLDERS=y (not just non-empty) and update
    standalone-generate-runvars to only set AP_FETCH_PLACEHOLDERS=y if
    it is unset.
  - Drop sqlite_use_immediate_transaction => 0,
  - Only memoize if not using placeholders (in particular don't blow
    away the cache)

The SQL errors seem to reproduce less reliably in this iteration than
before. I haven't got a FC why.
---
 ap-common                               |  9 +++++++++
 ap-fetch-version                        |  2 ++
 ap-fetch-version-baseline               |  3 +++
 ap-fetch-version-baseline-late          |  2 ++
 ap-fetch-version-old                    |  2 ++
 standalone-generate-dump-flight-runvars | 10 ++++++++--
 6 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/ap-common b/ap-common
index 91425a9..5b6e088 100644
--- a/ap-common
+++ b/ap-common
@@ -145,3 +145,12 @@ info_linux_tree () {
 
 	return 0
 }
+
+check_ap_fetch_placeholders () {
+	if [ "x$AP_FETCH_PLACEHOLDERS" != xy ] ; then
+		return 0
+	fi
+
+	echo "$(basename $0):$branch"
+	exit 0
+}
diff --git a/ap-fetch-version b/ap-fetch-version
index 6fa7588..f884bd3 100755
--- a/ap-fetch-version
+++ b/ap-fetch-version
@@ -25,6 +25,8 @@ branch=$1
 select_xenbranch
 . ./ap-common
 
+check_ap_fetch_placeholders
+
 if info_linux_tree "$branch"; then
 	repo_tree_rev_fetch_git linux \
 		$TREE_LINUX_THIS $TAG_LINUX_THIS $LOCALREV_LINUX
diff --git a/ap-fetch-version-baseline b/ap-fetch-version-baseline
index 2e42508..c9da82c 100755
--- a/ap-fetch-version-baseline
+++ b/ap-fetch-version-baseline
@@ -22,6 +22,9 @@ set -e -o posix
 branch=$1
 
 . ./cri-lock-repos
+. ./ap-common
+
+check_ap_fetch_placeholders
 
 : ${BASE_TREE_LINUX:=git://xenbits.xen.org/people/ianc/linux-2.6.git}
 : ${BASE_TAG_LINUX:=xen/next-2.6.32}
diff --git a/ap-fetch-version-baseline-late b/ap-fetch-version-baseline-late
index 9856ec9..dff8b05 100755
--- a/ap-fetch-version-baseline-late
+++ b/ap-fetch-version-baseline-late
@@ -27,6 +27,8 @@ new=$2
 select_xenbranch
 . ./ap-common
 
+check_ap_fetch_placeholders
+
 case "$branch" in
 
 linux-next)
diff --git a/ap-fetch-version-old b/ap-fetch-version-old
index 66d51f8..99f276a 100755
--- a/ap-fetch-version-old
+++ b/ap-fetch-version-old
@@ -25,6 +25,8 @@ branch=$1
 select_xenbranch
 . ./ap-common
 
+check_ap_fetch_placeholders
+
 : ${BASE_TAG_LINUX2639:=tested/2.6.39.x}
 : ${BASE_LOCALREV_LINUX:=daily-cron.$branch.old}
 : ${BASE_LOCALREV_LIBVIRT:=daily-cron.$branch.old}
diff --git a/standalone-generate-dump-flight-runvars b/standalone-generate-dump-flight-runvars
index d113927..a1907b0 100755
--- a/standalone-generate-dump-flight-runvars
+++ b/standalone-generate-dump-flight-runvars
@@ -36,11 +36,17 @@ if [ $# = 0 ]; then
    set `./mg-list-all-branches`
 fi
 
-if [ "x$AP_FETCH_MEMO_KEEP" = x ]; then
+: ${AP_FETCH_PLACEHOLDERS:=y}
+export AP_FETCH_PLACEHOLDERS
+
+
+if [ "x$AP_FETCH_PLACEHOLDERS" != xy ]; then
+    if [ "x$AP_FETCH_MEMO_KEEP" = x ]; then
 	rm -rf tmp/apmemo
 	mkdir tmp/apmemo
+    fi
+    export AP_FETCH_PFX='./memoise tmp/apmemo'
 fi
-export AP_FETCH_PFX='./memoise tmp/apmemo'
 
 # In the future it might be nice for this script to arrange to use a
 # separate standalone.db, in tmp/ probably, for each different branch.
-- 
2.5.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [RFC OSSTEST v2] ap-fetch-*: Support $AP_FETCH_PLACEHOLDERS envvar which outputs a placeholder
  2015-10-09 13:21 [RFC OSSTEST v2] ap-fetch-*: Support $AP_FETCH_PLACEHOLDERS envvar which outputs a placeholder Ian Campbell
@ 2015-10-09 16:06 ` Ian Jackson
  2015-10-09 16:14   ` Ian Campbell
  0 siblings, 1 reply; 3+ messages in thread
From: Ian Jackson @ 2015-10-09 16:06 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel

Ian Campbell writes ("[RFC OSSTEST v2] ap-fetch-*: Support $AP_FETCH_PLACEHOLDERS envvar which outputs a placeholder"):
> Still RFC because of these sqlite errors
> 
>     DBD::SQLite::db do failed: UNIQUE constraint failed: jobs.flight, jobs.job [for Statement "        INSERT INTO jobs VALUES (?,'build-i386-xsm','build','queued')

After having tried to repro this without success, and discussed
various implausible theories, we think this error is due to the
following:

You ran ./standalone-generate-dump-flight-runvars but then realised
you wanted to restart it.  So you pressed ^C.  But this does not
actually kill all the children (this is indeed a problem with this
script).  You then reran the script.  Now it is racing with other
copies of make-flight, cs-job-create, etc., which can create the same
jobs in the same flights as your current run.

>     DBD::SQLite::db do failed: database is locked [for Statement " DELETE FROM runvars WHERE flight = ?  "] at Osstest/JobDB/Standalone.pm line 67.
>     DBD::SQLite::db do failed: database is locked [for Statement " DELETE FROM runvars WHERE flight = ?  "] at Osstest/JobDB/Standalone.pm line 67.

And we think this is while you were trying to solve these problems by
setting the timeout, which you say you tried setting to zero in the
belief (justified by documentation but not apparently true) that that
means `infinite'.

> Which consistently take out the use of
> standalone-generate-dump-flight-runvars with this patch. I think
> probably because ap-fetch-* now complete instantly which makes the
> standalone-generate-dump-flight-runvars far more thunderous on the
> DB.

In any case, I have tried this several times both with and without
eatmydata and it seems to work fine for me.

I may prepare a patch to make standalone-generate-dump-flight-runvars
handle ^C properly.

Ian.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC OSSTEST v2] ap-fetch-*: Support $AP_FETCH_PLACEHOLDERS envvar which outputs a placeholder
  2015-10-09 16:06 ` Ian Jackson
@ 2015-10-09 16:14   ` Ian Campbell
  0 siblings, 0 replies; 3+ messages in thread
From: Ian Campbell @ 2015-10-09 16:14 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Fri, 2015-10-09 at 17:06 +0100, Ian Jackson wrote:
> 
[...]

Agree with that analysis, thanks.

> In any case, I have tried this several times both with and without
> eatmydata and it seems to work fine for me.

Me too, today.

> I may prepare a patch to make standalone-generate-dump-flight-runvars
> handle ^C properly.

That would be nice.

I shall send a v3 without the RFC stuff in a moment.

Ian.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-10-09 16:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-09 13:21 [RFC OSSTEST v2] ap-fetch-*: Support $AP_FETCH_PLACEHOLDERS envvar which outputs a placeholder Ian Campbell
2015-10-09 16:06 ` Ian Jackson
2015-10-09 16:14   ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.