* [PATCH] xfs/432: fix this test when external devices are in use @ 2022-07-26 19:51 Darrick J. Wong 2022-07-27 12:21 ` Zorro Lang 2022-07-27 22:06 ` [PATCH] xfs/432: fix this test when external devices are in use Dave Chinner 0 siblings, 2 replies; 8+ messages in thread From: Darrick J. Wong @ 2022-07-26 19:51 UTC (permalink / raw) To: guaneryu, zlang; +Cc: linux-xfs, fstests, guan From: Darrick J. Wong <djwong@kernel.org> This program exercises metadump and mdrestore being run against the scratch device. Therefore, the test must pass external log / rt device arguments to xfs_repair -n to check the "restored" filesystem. Fix the incorrect usage, and report repair failures, since this test has been silently failing for a while now. Signed-off-by: Darrick J. Wong <djwong@kernel.org> --- tests/xfs/432 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/xfs/432 b/tests/xfs/432 index 86012f0b..5c6744ce 100755 --- a/tests/xfs/432 +++ b/tests/xfs/432 @@ -89,7 +89,16 @@ _scratch_xfs_metadump $metadump_file -w xfs_mdrestore $metadump_file $metadump_img echo "Check restored metadump image" -$XFS_REPAIR_PROG -n $metadump_img >> $seqres.full 2>&1 +repair_args=('-n') +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ + repair_args+=('-l' "$SCRATCH_LOGDEV") + +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \ + repair_args+=('-r' "$SCRATCH_RTDEV") + +$XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 +res=$? +test $res -ne 0 && echo "xfs_repair on restored fs returned $res?" # success, all done status=0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] xfs/432: fix this test when external devices are in use 2022-07-26 19:51 [PATCH] xfs/432: fix this test when external devices are in use Darrick J. Wong @ 2022-07-27 12:21 ` Zorro Lang 2022-07-27 14:59 ` Darrick J. Wong 2022-07-27 22:06 ` [PATCH] xfs/432: fix this test when external devices are in use Dave Chinner 1 sibling, 1 reply; 8+ messages in thread From: Zorro Lang @ 2022-07-27 12:21 UTC (permalink / raw) To: Darrick J. Wong; +Cc: linux-xfs, fstests On Tue, Jul 26, 2022 at 12:51:31PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > This program exercises metadump and mdrestore being run against the > scratch device. Therefore, the test must pass external log / rt device > arguments to xfs_repair -n to check the "restored" filesystem. Fix the > incorrect usage, and report repair failures, since this test has been > silently failing for a while now. > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > --- > tests/xfs/432 | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/tests/xfs/432 b/tests/xfs/432 > index 86012f0b..5c6744ce 100755 > --- a/tests/xfs/432 > +++ b/tests/xfs/432 > @@ -89,7 +89,16 @@ _scratch_xfs_metadump $metadump_file -w > xfs_mdrestore $metadump_file $metadump_img > > echo "Check restored metadump image" > -$XFS_REPAIR_PROG -n $metadump_img >> $seqres.full 2>&1 > +repair_args=('-n') > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ > + repair_args+=('-l' "$SCRATCH_LOGDEV") > + > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \ > + repair_args+=('-r' "$SCRATCH_RTDEV") > + > +$XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 > +res=$? > +test $res -ne 0 && echo "xfs_repair on restored fs returned $res?" Make sense to me, I don't have better idea. One question, is xfs_metadump and xfs_mdrestore support rtdev? Due to I didn't find xfs_metadump have a "-r" option, although it has "-l logdev" :) About the "$res", I don't know why we need this extra variable, as it's not used in other place. Thanks, Zorro > > # success, all done > status=0 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xfs/432: fix this test when external devices are in use 2022-07-27 12:21 ` Zorro Lang @ 2022-07-27 14:59 ` Darrick J. Wong 2022-07-27 17:21 ` Zorro Lang 0 siblings, 1 reply; 8+ messages in thread From: Darrick J. Wong @ 2022-07-27 14:59 UTC (permalink / raw) To: Zorro Lang; +Cc: linux-xfs, fstests On Wed, Jul 27, 2022 at 08:21:42PM +0800, Zorro Lang wrote: > On Tue, Jul 26, 2022 at 12:51:31PM -0700, Darrick J. Wong wrote: > > From: Darrick J. Wong <djwong@kernel.org> > > > > This program exercises metadump and mdrestore being run against the > > scratch device. Therefore, the test must pass external log / rt device > > arguments to xfs_repair -n to check the "restored" filesystem. Fix the > > incorrect usage, and report repair failures, since this test has been > > silently failing for a while now. > > > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > > --- > > tests/xfs/432 | 11 ++++++++++- > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > diff --git a/tests/xfs/432 b/tests/xfs/432 > > index 86012f0b..5c6744ce 100755 > > --- a/tests/xfs/432 > > +++ b/tests/xfs/432 > > @@ -89,7 +89,16 @@ _scratch_xfs_metadump $metadump_file -w > > xfs_mdrestore $metadump_file $metadump_img > > > > echo "Check restored metadump image" > > -$XFS_REPAIR_PROG -n $metadump_img >> $seqres.full 2>&1 > > +repair_args=('-n') > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ > > + repair_args+=('-l' "$SCRATCH_LOGDEV") > > + > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \ > > + repair_args+=('-r' "$SCRATCH_RTDEV") > > + > > +$XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 > > +res=$? > > +test $res -ne 0 && echo "xfs_repair on restored fs returned $res?" > > Make sense to me, I don't have better idea. One question, is xfs_metadump > and xfs_mdrestore support rtdev? Due to I didn't find xfs_metadump have > a "-r" option, although it has "-l logdev" :) Oops, no it doesn't, so I'll remove that. > About the "$res", I don't know why we need this extra variable, as it's > not used in other place. If you don't pass the correct arguments to xfs_repair or the metadump trashes the fs, it'll exit with a nonzero code. All the output goes to $seqres.full, which means the test runner has no idea anything went wrong and marks the test passed even though repair failed. --D > Thanks, > Zorro > > > > > # success, all done > > status=0 > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xfs/432: fix this test when external devices are in use 2022-07-27 14:59 ` Darrick J. Wong @ 2022-07-27 17:21 ` Zorro Lang 2022-07-27 23:14 ` [PATCH] xfs/432: fix this test when external devices are in useOM Darrick J. Wong 0 siblings, 1 reply; 8+ messages in thread From: Zorro Lang @ 2022-07-27 17:21 UTC (permalink / raw) To: Darrick J. Wong; +Cc: linux-xfs, fstests On Wed, Jul 27, 2022 at 07:59:55AM -0700, Darrick J. Wong wrote: > On Wed, Jul 27, 2022 at 08:21:42PM +0800, Zorro Lang wrote: > > On Tue, Jul 26, 2022 at 12:51:31PM -0700, Darrick J. Wong wrote: > > > From: Darrick J. Wong <djwong@kernel.org> > > > > > > This program exercises metadump and mdrestore being run against the > > > scratch device. Therefore, the test must pass external log / rt device > > > arguments to xfs_repair -n to check the "restored" filesystem. Fix the > > > incorrect usage, and report repair failures, since this test has been > > > silently failing for a while now. > > > > > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > > > --- > > > tests/xfs/432 | 11 ++++++++++- > > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > > > diff --git a/tests/xfs/432 b/tests/xfs/432 > > > index 86012f0b..5c6744ce 100755 > > > --- a/tests/xfs/432 > > > +++ b/tests/xfs/432 > > > @@ -89,7 +89,16 @@ _scratch_xfs_metadump $metadump_file -w > > > xfs_mdrestore $metadump_file $metadump_img > > > > > > echo "Check restored metadump image" > > > -$XFS_REPAIR_PROG -n $metadump_img >> $seqres.full 2>&1 > > > +repair_args=('-n') > > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ > > > + repair_args+=('-l' "$SCRATCH_LOGDEV") > > > + > > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \ > > > + repair_args+=('-r' "$SCRATCH_RTDEV") > > > + > > > +$XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 > > > +res=$? > > > +test $res -ne 0 && echo "xfs_repair on restored fs returned $res?" > > > > Make sense to me, I don't have better idea. One question, is xfs_metadump > > and xfs_mdrestore support rtdev? Due to I didn't find xfs_metadump have > > a "-r" option, although it has "-l logdev" :) > > Oops, no it doesn't, so I'll remove that. Hmm... it doesn't for now or won't for future? So all test cases about xfs_metadump can't run with SCRATCH_RTDEV? Do we need something likes _require_nortdev? > > > About the "$res", I don't know why we need this extra variable, as it's > > not used in other place. > > If you don't pass the correct arguments to xfs_repair or the metadump > trashes the fs, it'll exit with a nonzero code. All the output goes to > $seqres.full, which means the test runner has no idea anything went > wrong and marks the test passed even though repair failed. Oh, I mean why not use the "$?" directly? Or : $XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 || \ echo "xfs_repair on restored fs returned $res?" Looks like we don't need to save this return status and use it on other place. The "$res" looks redundant, although it's not wrong :) Thanks, Zorro > > --D > > > Thanks, > > Zorro > > > > > > > > # success, all done > > > status=0 > > > > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xfs/432: fix this test when external devices are in useOM 2022-07-27 17:21 ` Zorro Lang @ 2022-07-27 23:14 ` Darrick J. Wong 0 siblings, 0 replies; 8+ messages in thread From: Darrick J. Wong @ 2022-07-27 23:14 UTC (permalink / raw) To: Zorro Lang; +Cc: linux-xfs, fstests On Thu, Jul 28, 2022 at 01:21:37AM +0800, Zorro Lang wrote: > On Wed, Jul 27, 2022 at 07:59:55AM -0700, Darrick J. Wong wrote: > > On Wed, Jul 27, 2022 at 08:21:42PM +0800, Zorro Lang wrote: > > > On Tue, Jul 26, 2022 at 12:51:31PM -0700, Darrick J. Wong wrote: > > > > From: Darrick J. Wong <djwong@kernel.org> > > > > > > > > This program exercises metadump and mdrestore being run against the > > > > scratch device. Therefore, the test must pass external log / rt device > > > > arguments to xfs_repair -n to check the "restored" filesystem. Fix the > > > > incorrect usage, and report repair failures, since this test has been > > > > silently failing for a while now. > > > > > > > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > > > > --- > > > > tests/xfs/432 | 11 ++++++++++- > > > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/tests/xfs/432 b/tests/xfs/432 > > > > index 86012f0b..5c6744ce 100755 > > > > --- a/tests/xfs/432 > > > > +++ b/tests/xfs/432 > > > > @@ -89,7 +89,16 @@ _scratch_xfs_metadump $metadump_file -w > > > > xfs_mdrestore $metadump_file $metadump_img > > > > > > > > echo "Check restored metadump image" > > > > -$XFS_REPAIR_PROG -n $metadump_img >> $seqres.full 2>&1 > > > > +repair_args=('-n') > > > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ > > > > + repair_args+=('-l' "$SCRATCH_LOGDEV") > > > > + > > > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \ > > > > + repair_args+=('-r' "$SCRATCH_RTDEV") > > > > + > > > > +$XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 > > > > +res=$? > > > > +test $res -ne 0 && echo "xfs_repair on restored fs returned $res?" > > > > > > Make sense to me, I don't have better idea. One question, is xfs_metadump > > > and xfs_mdrestore support rtdev? Due to I didn't find xfs_metadump have > > > a "-r" option, although it has "-l logdev" :) > > > > Oops, no it doesn't, so I'll remove that. > > Hmm... it doesn't for now or won't for future? > > So all test cases about xfs_metadump can't run with SCRATCH_RTDEV? Do we need > something likes _require_nortdev? There's no need for metadump to touch the realtime device since it contains only file data. > > > > > About the "$res", I don't know why we need this extra variable, as it's > > > not used in other place. > > > > If you don't pass the correct arguments to xfs_repair or the metadump > > trashes the fs, it'll exit with a nonzero code. All the output goes to > > $seqres.full, which means the test runner has no idea anything went > > wrong and marks the test passed even though repair failed. > > Oh, I mean why not use the "$?" directly? Or : > $XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 || \ > echo "xfs_repair on restored fs returned $res?" > > Looks like we don't need to save this return status and use it on other place. > The "$res" looks redundant, although it's not wrong :) Oh, yeah, I can do that too. --D > Thanks, > Zorro > > > > > --D > > > > > Thanks, > > > Zorro > > > > > > > > > > > # success, all done > > > > status=0 > > > > > > > > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xfs/432: fix this test when external devices are in use 2022-07-26 19:51 [PATCH] xfs/432: fix this test when external devices are in use Darrick J. Wong 2022-07-27 12:21 ` Zorro Lang @ 2022-07-27 22:06 ` Dave Chinner 2022-07-27 22:47 ` Darrick J. Wong 1 sibling, 1 reply; 8+ messages in thread From: Dave Chinner @ 2022-07-27 22:06 UTC (permalink / raw) To: Darrick J. Wong; +Cc: guaneryu, zlang, linux-xfs, fstests, guan On Tue, Jul 26, 2022 at 12:51:31PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > This program exercises metadump and mdrestore being run against the > scratch device. Therefore, the test must pass external log / rt device > arguments to xfs_repair -n to check the "restored" filesystem. Fix the > incorrect usage, and report repair failures, since this test has been > silently failing for a while now. > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > --- > tests/xfs/432 | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/tests/xfs/432 b/tests/xfs/432 > index 86012f0b..5c6744ce 100755 > --- a/tests/xfs/432 > +++ b/tests/xfs/432 > @@ -89,7 +89,16 @@ _scratch_xfs_metadump $metadump_file -w > xfs_mdrestore $metadump_file $metadump_img > > echo "Check restored metadump image" > -$XFS_REPAIR_PROG -n $metadump_img >> $seqres.full 2>&1 > +repair_args=('-n') > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ > + repair_args+=('-l' "$SCRATCH_LOGDEV") > + > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \ > + repair_args+=('-r' "$SCRATCH_RTDEV") > + > +$XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 > +res=$? > +test $res -ne 0 && echo "xfs_repair on restored fs returned $res?" I don't like open coding external device support into individual tests. i.e. Shouldn't this use a wrapper around check_xfs_filesystem() similar to _check_xfs_test_fs()? Call it check_xfs_scratch_fs() that uses SCRATCH_DEV by default, but if $1 is passed in use that as the scratch device instead? Cheers, Dave. -- Dave Chinner david@fromorbit.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xfs/432: fix this test when external devices are in use 2022-07-27 22:06 ` [PATCH] xfs/432: fix this test when external devices are in use Dave Chinner @ 2022-07-27 22:47 ` Darrick J. Wong 2022-07-27 23:15 ` Darrick J. Wong 0 siblings, 1 reply; 8+ messages in thread From: Darrick J. Wong @ 2022-07-27 22:47 UTC (permalink / raw) To: Dave Chinner; +Cc: guaneryu, zlang, linux-xfs, fstests, guan On Thu, Jul 28, 2022 at 08:06:00AM +1000, Dave Chinner wrote: > On Tue, Jul 26, 2022 at 12:51:31PM -0700, Darrick J. Wong wrote: > > From: Darrick J. Wong <djwong@kernel.org> > > > > This program exercises metadump and mdrestore being run against the > > scratch device. Therefore, the test must pass external log / rt device > > arguments to xfs_repair -n to check the "restored" filesystem. Fix the > > incorrect usage, and report repair failures, since this test has been > > silently failing for a while now. > > > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > > --- > > tests/xfs/432 | 11 ++++++++++- > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > diff --git a/tests/xfs/432 b/tests/xfs/432 > > index 86012f0b..5c6744ce 100755 > > --- a/tests/xfs/432 > > +++ b/tests/xfs/432 > > @@ -89,7 +89,16 @@ _scratch_xfs_metadump $metadump_file -w > > xfs_mdrestore $metadump_file $metadump_img > > > > echo "Check restored metadump image" > > -$XFS_REPAIR_PROG -n $metadump_img >> $seqres.full 2>&1 > > +repair_args=('-n') > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ > > + repair_args+=('-l' "$SCRATCH_LOGDEV") > > + > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \ > > + repair_args+=('-r' "$SCRATCH_RTDEV") > > + > > +$XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 > > +res=$? > > +test $res -ne 0 && echo "xfs_repair on restored fs returned $res?" > > I don't like open coding external device support into individual > tests. > > i.e. Shouldn't this use a wrapper around check_xfs_filesystem() > similar to _check_xfs_test_fs()? Call it check_xfs_scratch_fs() that > uses SCRATCH_DEV by default, but if $1 is passed in use that as the > scratch device instead? Yeah, that would also work. IIRC there's one other fstest that does something similar to this. --D > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xfs/432: fix this test when external devices are in use 2022-07-27 22:47 ` Darrick J. Wong @ 2022-07-27 23:15 ` Darrick J. Wong 0 siblings, 0 replies; 8+ messages in thread From: Darrick J. Wong @ 2022-07-27 23:15 UTC (permalink / raw) To: Dave Chinner; +Cc: guaneryu, zlang, linux-xfs, fstests, guan On Wed, Jul 27, 2022 at 03:47:56PM -0700, Darrick J. Wong wrote: > On Thu, Jul 28, 2022 at 08:06:00AM +1000, Dave Chinner wrote: > > On Tue, Jul 26, 2022 at 12:51:31PM -0700, Darrick J. Wong wrote: > > > From: Darrick J. Wong <djwong@kernel.org> > > > > > > This program exercises metadump and mdrestore being run against the > > > scratch device. Therefore, the test must pass external log / rt device > > > arguments to xfs_repair -n to check the "restored" filesystem. Fix the > > > incorrect usage, and report repair failures, since this test has been > > > silently failing for a while now. > > > > > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > > > --- > > > tests/xfs/432 | 11 ++++++++++- > > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > > > diff --git a/tests/xfs/432 b/tests/xfs/432 > > > index 86012f0b..5c6744ce 100755 > > > --- a/tests/xfs/432 > > > +++ b/tests/xfs/432 > > > @@ -89,7 +89,16 @@ _scratch_xfs_metadump $metadump_file -w > > > xfs_mdrestore $metadump_file $metadump_img > > > > > > echo "Check restored metadump image" > > > -$XFS_REPAIR_PROG -n $metadump_img >> $seqres.full 2>&1 > > > +repair_args=('-n') > > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ > > > + repair_args+=('-l' "$SCRATCH_LOGDEV") > > > + > > > +[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \ > > > + repair_args+=('-r' "$SCRATCH_RTDEV") > > > + > > > +$XFS_REPAIR_PROG "${repair_args[@]}" $metadump_img >> $seqres.full 2>&1 > > > +res=$? > > > +test $res -ne 0 && echo "xfs_repair on restored fs returned $res?" > > > > I don't like open coding external device support into individual > > tests. > > > > i.e. Shouldn't this use a wrapper around check_xfs_filesystem() > > similar to _check_xfs_test_fs()? Call it check_xfs_scratch_fs() that > > uses SCRATCH_DEV by default, but if $1 is passed in use that as the > > scratch device instead? > > Yeah, that would also work. IIRC there's one other fstest that does > something similar to this. Actually, there already is a _scratch_xfs_repair, so I think I'll just re(ab)use it: SCRATCH_DEV=$metadump_img _scratch_xfs_repair -n &>> $seqres.full || \ echo "xfs_repair on restored fs returned $?" --D > --D > > > Cheers, > > > > Dave. > > -- > > Dave Chinner > > david@fromorbit.com ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-07-27 23:15 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-07-26 19:51 [PATCH] xfs/432: fix this test when external devices are in use Darrick J. Wong 2022-07-27 12:21 ` Zorro Lang 2022-07-27 14:59 ` Darrick J. Wong 2022-07-27 17:21 ` Zorro Lang 2022-07-27 23:14 ` [PATCH] xfs/432: fix this test when external devices are in useOM Darrick J. Wong 2022-07-27 22:06 ` [PATCH] xfs/432: fix this test when external devices are in use Dave Chinner 2022-07-27 22:47 ` Darrick J. Wong 2022-07-27 23:15 ` Darrick J. Wong
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.