tests/test-clone-stream-revlog-split.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 29 May 2023 18:41:58 +0200
changeset 50641 5460424092e2
parent 50640 9caa860dcbec
child 50706 0452af304808
permissions -rw-r--r--
stream-clone: smoothly detect and handle a case were a revlog is split This detect and handle the most common case for a race condition around stream and revlog splitting. The one were the revlog is split between the initial collection of data and the time were we start considering stream that data. In such case, we repatch an inlined version of that revlog together when this happens. This is necessary as stream-v2 promised a specific number of bytes and a specific number of files to the client. In stream-v3, we will have the opportunity to just send a split revlog instead. Getting a better version of the protocol for stream-v3 is still useful, but it is no longer a blocket to fix that race condition. Note that another, rarer race condition exist, were the revlog is split while we creating the revlog and extracing content from it. This can be dealt with later.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50626
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
Test stream cloning while a revlog split happens
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
------------------------------------------------
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
#testcases stream-bundle2-v2 stream-bundle2-v3
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     5
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     6
#if stream-bundle2-v3
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     7
  $ cat << EOF >> $HGRCPATH
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     8
  > [experimental]
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     9
  > stream-v3 = yes
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    10
  > EOF
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    11
#endif
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    12
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    13
setup a repository for tests
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    14
----------------------------
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    16
  $ cat >> $HGRCPATH << EOF
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    17
  > [format]
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    18
  > # skip compression to make it easy to trigger a split
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    19
  > revlog-compression=none
50641
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    20
  > [phases]
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    21
  > publish=no
50626
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    22
  > EOF
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    23
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    24
  $ hg init server
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    25
  $ cd server
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    26
  $ file="some-file"
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    27
  $ printf '%20d' '1' > $file
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    28
  $ hg commit -Aqma
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    29
  $ printf '%1024d' '1' > $file
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    30
  $ hg commit -Aqmb
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
  $ printf '%20d' '1' > $file
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    32
  $ hg commit -Aqmc
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    33
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    34
check the revlog is inline
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    35
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
  $ f -s .hg/store/data/some-file*
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    37
  .hg/store/data/some-file.i: size=1259
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    38
  $ hg debug-revlog-index some-file
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    39
     rev linkrev       nodeid    p1-nodeid    p2-nodeid
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    40
       0       0 ed70cecbc103 000000000000 000000000000
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    41
       1       1 7241018db64c ed70cecbc103 000000000000
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    42
       2       2 fa1120531cc1 7241018db64c 000000000000
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    43
  $ cd ..
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    44
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    45
setup synchronisation file
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    46
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    47
  $ HG_TEST_STREAM_WALKED_FILE_1="$TESTTMP/sync_file_walked_1"
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    48
  $ export HG_TEST_STREAM_WALKED_FILE_1
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    49
  $ HG_TEST_STREAM_WALKED_FILE_2="$TESTTMP/sync_file_walked_2"
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    50
  $ export HG_TEST_STREAM_WALKED_FILE_2
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    51
  $ HG_TEST_STREAM_WALKED_FILE_3="$TESTTMP/sync_file_walked_3"
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    52
  $ export HG_TEST_STREAM_WALKED_FILE_3
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    53
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    54
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    55
Test stream-clone raced by a revlog-split
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    56
=========================================
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    57
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    58
Test stream-clone where the file is split right after the lock section is done
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    59
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    60
Start the server
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    61
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    62
  $ hg serve -R server \
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    63
  >   -p $HGPORT1 -d --error errors.log --pid-file=hg.pid \
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    64
  >   --config extensions.stream_steps="$RUNTESTDIR/testlib/ext-stream-clone-steps.py"
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    65
  $ cat hg.pid >> $DAEMON_PIDS
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    66
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    67
Start a client doing a streaming clone
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    68
50641
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    69
  $ ( \
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    70
  >    hg clone --debug --stream -U http://localhost:$HGPORT1 \
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    71
  >    clone-while-split > client.log 2>&1; \
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    72
  >    touch "$HG_TEST_STREAM_WALKED_FILE_3" \
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    73
  > ) &
50626
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    74
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    75
Wait for the server to be done collecting data
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    76
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    77
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_1
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    78
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    79
trigger a split
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    80
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    81
  $ dd if=/dev/zero of=server/$file bs=1k count=128 > /dev/null 2>&1
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    82
  $ hg -R server ci -m "triggering a split" --config ui.timeout.warn=-1
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    83
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    84
unlock the stream generation
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    85
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    86
  $ touch $HG_TEST_STREAM_WALKED_FILE_2
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    87
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    88
wait for the client to be done cloning.
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    89
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    90
  $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_3
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    91
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    92
Check everything is fine
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    93
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    94
  $ cat client.log
50641
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    95
  using http://localhost:$HGPORT1/
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    96
  sending capabilities command
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    97
  query 1; heads
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    98
  sending batch command
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
    99
  streaming all changes
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   100
  sending getbundle command
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   101
  bundle2-input-bundle: with-transaction
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   102
  bundle2-input-part: "stream2" (params: 3 mandatory) supported (stream-bundle2-v2 !)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   103
  bundle2-input-part: "stream3-exp" (params: 3 mandatory) supported (stream-bundle2-v3 !)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   104
  applying stream bundle
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   105
  7 files to transfer, 2.11 KB of data
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   106
  adding [s] data/some-file.i (1.23 KB)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   107
  adding [s] phaseroots (43 bytes)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   108
  adding [s] 00manifest.i (348 bytes)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   109
  adding [s] 00changelog.i (381 bytes)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   110
  adding [c] branch2-served (94 bytes)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   111
  adding [c] rbc-names-v1 (7 bytes)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   112
  adding [c] rbc-revs-v1 (24 bytes)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   113
  updating the branch cache
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   114
  transferred 2.11 KB in * seconds (* */sec) (glob)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   115
  bundle2-input-part: total payload size 2268
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   116
  bundle2-input-part: "listkeys" (params: 1 mandatory) supported
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   117
  bundle2-input-bundle: 2 parts total
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   118
  checking for updated bookmarks
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   119
  updating the branch cache
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   120
  (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob)
50626
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   121
  $ tail -2 errors.log
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   122
  $ hg -R clone-while-split verify
50641
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   123
  checking changesets
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   124
  checking manifests
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   125
  crosschecking files in changesets and manifests
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   126
  checking files
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   127
  checking dirstate
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   128
  checked 3 changesets with 3 changes to 1 files
50626
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   129
  $ hg -R clone-while-split tip
50641
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   130
  changeset:   2:dbd9854c38a6
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   131
  tag:         tip
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   132
  user:        test
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   133
  date:        Thu Jan 01 00:00:00 1970 +0000
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   134
  summary:     c
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   135
  
50626
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   136
  $ hg -R clone-while-split debug-revlog-index some-file
50641
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   137
     rev linkrev       nodeid    p1-nodeid    p2-nodeid
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   138
       0       0 ed70cecbc103 000000000000 000000000000
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   139
       1       1 7241018db64c ed70cecbc103 000000000000
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   140
       2       2 fa1120531cc1 7241018db64c 000000000000
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   141
  $ hg -R server phase --rev 'all()'
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   142
  0: draft
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   143
  1: draft
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   144
  2: draft
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   145
  3: draft
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   146
  $ hg -R clone-while-split phase --rev 'all()'
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   147
  0: draft
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   148
  1: draft
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   149
  2: draft
50626
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   150
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   151
subsequent pull work
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   152
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   153
  $ hg -R clone-while-split pull
50641
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   154
  pulling from http://localhost:$HGPORT1/
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   155
  searching for changes
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   156
  adding changesets
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   157
  adding manifests
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   158
  adding file changes
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   159
  added 1 changesets with 1 changes to 1 files
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   160
  new changesets df05c6cb1406 (1 drafts)
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   161
  (run 'hg update' to get a working copy)
50626
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   162
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   163
  $ hg -R clone-while-split debug-revlog-index some-file
50641
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   164
     rev linkrev       nodeid    p1-nodeid    p2-nodeid
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   165
       0       0 ed70cecbc103 000000000000 000000000000
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   166
       1       1 7241018db64c ed70cecbc103 000000000000
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   167
       2       2 fa1120531cc1 7241018db64c 000000000000
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   168
       3       3 a631378adaa3 fa1120531cc1 000000000000
50626
9b0fe2b075b5 stream-clone: add a test that highlight crash on revlog splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   169
  $ hg -R clone-while-split verify
50641
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   170
  checking changesets
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   171
  checking manifests
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   172
  crosschecking files in changesets and manifests
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   173
  checking files
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   174
  checking dirstate
5460424092e2 stream-clone: smoothly detect and handle a case were a revlog is split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50640
diff changeset
   175
  checked 4 changesets with 4 changes to 1 files