tigert1998 / 6.824

A reference implementation of 6.824 distributed systems
1 stars 0 forks source link

kvraft data race #4

Open tigert1998 opened 3 years ago

tigert1998 commented 3 years ago
==================
WARNING: DATA RACE
Read at 0x00c00079e1b0 by goroutine 210:
  6.824/raft.(*Raft).AppendEntries()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:509 +0xe84
  runtime.call32()
      /home/chenshihan/.go/src/runtime/asm_amd64.s:626 +0x48
  reflect.Value.Call()
      /home/chenshihan/.go/src/reflect/value.go:339 +0xd7
  6.824/labrpc.(*Service).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:499 +0x49b
  6.824/labrpc.(*Server).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:423 +0x265
  6.824/labrpc.(*Network).processReq.func1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:243 +0x9c

Previous write at 0x00c00079e1b0 by goroutine 280:
  reflect.Value.SetInt()
      /home/chenshihan/.go/src/reflect/value.go:1983 +0xd0
  encoding/gob.decInt64()
      /home/chenshihan/.go/src/encoding/gob/decode.go:302 +0x5c
  encoding/gob.(*Decoder).decodeStruct()
      /home/chenshihan/.go/src/encoding/gob/decode.go:471 +0x2b9
  encoding/gob.(*Decoder).decOpFor.func4()
      /home/chenshihan/.go/src/encoding/gob/decode.go:860 +0x75
  encoding/gob.(*Decoder).decodeArrayHelper()
      /home/chenshihan/.go/src/encoding/gob/decode.go:530 +0x224
  encoding/gob.(*Decoder).decodeSlice()
      /home/chenshihan/.go/src/encoding/gob/decode.go:630 +0x21d
  encoding/gob.(*Decoder).decOpFor.func3()
      /home/chenshihan/.go/src/encoding/gob/decode.go:848 +0xea
  encoding/gob.(*Decoder).decodeStruct()
      /home/chenshihan/.go/src/encoding/gob/decode.go:471 +0x2b9
  encoding/gob.(*Decoder).decodeValue()
      /home/chenshihan/.go/src/encoding/gob/decode.go:1205 +0x376
  encoding/gob.(*Decoder).DecodeValue()
      /home/chenshihan/.go/src/encoding/gob/decoder.go:216 +0x2ca
  encoding/gob.(*Decoder).Decode()
      /home/chenshihan/.go/src/encoding/gob/decoder.go:191 +0x28a
  6.824/labgob.(*LabDecoder).Decode()
      /home/chenshihan/xiaohu/6.824/src/labgob/labgob.go:55 +0x7b
  6.824/labrpc.(*Service).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:490 +0x2e4
  6.824/labrpc.(*Server).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:423 +0x265
  6.824/labrpc.(*Network).processReq.func1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:243 +0x9c

Goroutine 210 (running) created at:
  6.824/labrpc.(*Network).processReq()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:242 +0x293
  6.824/labrpc.MakeNetwork.func1·dwrap·1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x9c

Goroutine 280 (running) created at:
  6.824/labrpc.(*Network).processReq()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:242 +0x293
  6.824/labrpc.MakeNetwork.func1·dwrap·1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x9c
==================
==================
WARNING: DATA RACE
Read at 0x00c00001b7a8 by goroutine 70:
  runtime.slicecopy()
      /home/chenshihan/.go/src/runtime/slice.go:284 +0x0
  encoding/gob.(*encBuffer).WriteString()
      /home/chenshihan/.go/src/encoding/gob/encode.go:60 +0x22b
  encoding/gob.encString()
      /home/chenshihan/.go/src/encoding/gob/encode.go:256 +0x16f
  encoding/gob.(*Encoder).encodeStruct()
      /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x569
  encoding/gob.(*Encoder).encode()
      /home/chenshihan/.go/src/encoding/gob/encode.go:701 +0x28d
  encoding/gob.(*Encoder).encodeInterface()
      /home/chenshihan/.go/src/encoding/gob/encode.go:419 +0x9b4
  encoding/gob.encOpFor.func5()
      /home/chenshihan/.go/src/encoding/gob/encode.go:589 +0x24c
  encoding/gob.(*Encoder).encodeStruct()
      /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x569
  encoding/gob.encOpFor.func4()
      /home/chenshihan/.go/src/encoding/gob/encode.go:581 +0x168
  encoding/gob.(*Encoder).encodeArray()
      /home/chenshihan/.go/src/encoding/gob/encode.go:351 +0x39a
  encoding/gob.encOpFor.func1()
      /home/chenshihan/.go/src/encoding/gob/encode.go:551 +0x215
  encoding/gob.(*Encoder).encodeSingle()
      /home/chenshihan/.go/src/encoding/gob/encode.go:301 +0x3ea
  encoding/gob.(*Encoder).encode()
      /home/chenshihan/.go/src/encoding/gob/encode.go:703 +0x259
  encoding/gob.(*Encoder).EncodeValue()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:251 +0x72f
  encoding/gob.(*Encoder).Encode()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:176 +0x152
  6.824/labgob.(*LabEncoder).Encode()
      /home/chenshihan/xiaohu/6.824/src/labgob/labgob.go:34 +0x5e
  6.824/raft.(*Raft).getSerializedRaftState()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:287 +0x150
  6.824/raft.(*Raft).persist()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:292 +0x2e
  6.824/raft.(*Raft).Start()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:559 +0x2e6
  6.824/kvraft.(*KVServer).PutAppend()
      /home/chenshihan/xiaohu/6.824/src/kvraft/server.go:232 +0x4f7
  runtime.call32()
      /home/chenshihan/.go/src/runtime/asm_amd64.s:626 +0x48
  reflect.Value.Call()
      /home/chenshihan/.go/src/reflect/value.go:339 +0xd7
  6.824/labrpc.(*Service).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:499 +0x49b
  6.824/labrpc.(*Server).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:423 +0x265
  6.824/labrpc.(*Network).processReq.func1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:243 +0x9c

Previous write at 0x00c00001b7a8 by goroutine 133:
  reflect.(*structType).Field()
      /home/chenshihan/.go/src/reflect/type.go:1254 +0x246
  reflect.(*rtype).Field()
      /home/chenshihan/.go/src/reflect/type.go:962 +0xc4
  encoding/gob.(*Encoder).sendActualType()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:122 +0x791
  encoding/gob.(*Encoder).sendType()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:169 +0x15b
  encoding/gob.(*Encoder).sendTypeDescriptor()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:191 +0x144
  encoding/gob.(*Encoder).encodeInterface()
      /home/chenshihan/.go/src/encoding/gob/encode.go:411 +0x6d8
  encoding/gob.encOpFor.func5()
      /home/chenshihan/.go/src/encoding/gob/encode.go:589 +0x24c
  encoding/gob.(*Encoder).encodeStruct()
      /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x569
  encoding/gob.encOpFor.func4()
      /home/chenshihan/.go/src/encoding/gob/encode.go:581 +0x168
  encoding/gob.(*Encoder).encodeArray()
      /home/chenshihan/.go/src/encoding/gob/encode.go:351 +0x39a
  encoding/gob.encOpFor.func1()
      /home/chenshihan/.go/src/encoding/gob/encode.go:551 +0x215
  encoding/gob.(*Encoder).encodeSingle()
      /home/chenshihan/.go/src/encoding/gob/encode.go:301 +0x3ea
  encoding/gob.(*Encoder).encode()
      /home/chenshihan/.go/src/encoding/gob/encode.go:703 +0x259
  encoding/gob.(*Encoder).EncodeValue()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:251 +0x72f
  encoding/gob.(*Encoder).Encode()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:176 +0x152
  6.824/labgob.(*LabEncoder).Encode()
      /home/chenshihan/xiaohu/6.824/src/labgob/labgob.go:34 +0x5e
  6.824/raft.(*Raft).getSerializedRaftState()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:287 +0x150
  6.824/raft.(*Raft).persist()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:292 +0x2e
  6.824/raft.(*Raft).AppendEntries()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:523 +0xc6a
  runtime.call32()
      /home/chenshihan/.go/src/runtime/asm_amd64.s:626 +0x48
  reflect.Value.Call()
      /home/chenshihan/.go/src/reflect/value.go:339 +0xd7
  6.824/labrpc.(*Service).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:499 +0x49b
  6.824/labrpc.(*Server).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:423 +0x265
  6.824/labrpc.(*Network).processReq.func1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:243 +0x9c

Goroutine 70 (running) created at:
  6.824/labrpc.(*Network).processReq()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:242 +0x293
  6.824/labrpc.MakeNetwork.func1·dwrap·1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x9c

Goroutine 133 (running) created at:
  6.824/labrpc.(*Network).processReq()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:242 +0x293
  6.824/labrpc.MakeNetwork.func1·dwrap·1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x9c
==================

commit: https://github.com/tigert1998/6.824/commit/8ff6e61200ba182af8065d0f48387cb2b8111840

tigert1998 commented 3 years ago
==================
WARNING: DATA RACE
Read at 0x00c0006106e0 by goroutine 197:
  reflect.Value.Int()
      /home/chenshihan/.go/src/reflect/value.go:1324 +0xa6
  encoding/gob.encInt()
      /home/chenshihan/.go/src/encoding/gob/encode.go:188 +0x80
  encoding/gob.(*Encoder).encodeStruct()
      /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x569
  encoding/gob.(*Encoder).encode()
      /home/chenshihan/.go/src/encoding/gob/encode.go:701 +0x28d
  encoding/gob.(*Encoder).encodeInterface()
      /home/chenshihan/.go/src/encoding/gob/encode.go:419 +0x9b4
  encoding/gob.encOpFor.func5()
      /home/chenshihan/.go/src/encoding/gob/encode.go:589 +0x24c
  encoding/gob.(*Encoder).encodeStruct()
      /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x569
01:24:19.134242 [term #2] send log [2] -> [3], range [1020, 1021), success
  encoding/gob.encOpFor.func4()
      /home/chenshihan/.go/src/encoding/gob/encode.go:581 +0x168
  encoding/gob.(*Encoder).encodeArray()
      /home/chenshihan/.go/src/encoding/gob/encode.go:351 +0x39a
  encoding/gob.encOpFor.func1()
      /home/chenshihan/.go/src/encoding/gob/encode.go:551 +0x215
  encoding/gob.(*Encoder).encodeSingle()
      /home/chenshihan/.go/src/encoding/gob/encode.go:301 +0x3ea
  encoding/gob.(*Encoder).encode()
      /home/chenshihan/.go/src/encoding/gob/encode.go:703 +0x259
  encoding/gob.(*Encoder).EncodeValue()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:251 +0x72f
  encoding/gob.(*Encoder).Encode()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:176 +0x152
  6.824/labgob.(*LabEncoder).Encode()
      /home/chenshihan/xiaohu/6.824/src/labgob/labgob.go:34 +0x5e
  6.824/raft.(*Raft).getSerializedRaftState()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:290 +0x150
  6.824/raft.(*Raft).persist()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:295 +0x2e
  6.824/raft.(*Raft).AppendEntries()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:534 +0xc6a
  runtime.call32()
      /home/chenshihan/.go/src/runtime/asm_amd64.s:626 +0x48
  reflect.Value.Call()
      /home/chenshihan/.go/src/reflect/value.go:339 +0xd7
  6.824/labrpc.(*Service).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:499 +0x49b
  6.824/labrpc.(*Server).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:423 +0x265
  6.824/labrpc.(*Network).processReq.func1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:243 +0x9c

Previous write at 0x00c0006106e0 by goroutine 175:
  time.NewTimer()
      /home/chenshihan/.go/src/time/sleep.go:89 +0x64
  time.After()
      /home/chenshihan/.go/src/time/sleep.go:161 +0x4ba
  6.824/labrpc.(*Network).processReq()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:257 +0x51c
  6.824/labrpc.MakeNetwork.func1·dwrap·1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x9c

Goroutine 197 (running) created at:
  6.824/labrpc.(*Network).processReq()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:242 +0x293
  6.824/labrpc.MakeNetwork.func1·dwrap·1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x9c

Goroutine 175 (finished) created at:
  6.824/labrpc.MakeNetwork.func1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x48
==================
panic: runtime error: growslice: cap out of range [recovered]
    panic: runtime error: growslice: cap out of range [recovered]
    panic: runtime error: growslice: cap out of range

goroutine 102015 [running]:
encoding/gob.catchError(0xc00049a270)
    /home/chenshihan/.go/src/encoding/gob/error.go:38 +0xb9
panic({0x679380, 0x6f8810})
    /home/chenshihan/.go/src/runtime/panic.go:1047 +0x266
encoding/gob.catchError(0xc00049a270)
    /home/chenshihan/.go/src/encoding/gob/error.go:38 +0xb9
panic({0x679380, 0x6f8810})
    /home/chenshihan/.go/src/runtime/panic.go:1047 +0x266
encoding/gob.(*encBuffer).WriteString(...)
    /home/chenshihan/.go/src/encoding/gob/encode.go:60
encoding/gob.encString(0xc0000141b0, 0xc000422dc0, {0x66d320, 0xc0006106e8, 0x1})
    /home/chenshihan/.go/src/encoding/gob/encode.go:256 +0x1dc
encoding/gob.(*Encoder).encodeStruct(0xc00049a1e0, 0xc0009286c0, 0xc0003146a8, {0x694b40, 0xc0006106e0, 0x438ead})
    /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x56a
encoding/gob.(*Encoder).encode(0xc00049a1e0, 0x49, {0x694b40, 0xc0006106e0, 0xc000121b40}, 0xc000121b40)
    /home/chenshihan/.go/src/encoding/gob/encode.go:701 +0x28e
encoding/gob.(*Encoder).encodeInterface(0xc00049a1e0, 0xc00049a218, {0x674a20, 0xc00039c230, 0x49f325})
    /home/chenshihan/.go/src/encoding/gob/encode.go:419 +0x9b5
encoding/gob.encOpFor.func5(0xc000398030, 0xc000422d40, {0x674a20, 0xc00039c230, 0x1})
    /home/chenshihan/.go/src/encoding/gob/encode.go:589 +0x24d
encoding/gob.(*Encoder).encodeStruct(0xc00049a1e0, 0xc00049a218, 0xc000394048, {0x681a80, 0xc00039c228, 0xc000142b90})
    /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x56a
encoding/gob.encOpFor.func4(0x0, 0xc000422d00, {0x681a80, 0xc00039c228, 0x0})
    /home/chenshihan/.go/src/encoding/gob/encode.go:581 +0x169
encoding/gob.(*Encoder).encodeArray(0xc00049a1e0, 0xc00049a218, {0x669580, 0xc0002649d8, 0x5efd13}, 0xc000382c90, 0x0, 0x9, 0x0)
    /home/chenshihan/.go/src/encoding/gob/encode.go:351 +0x39b
encoding/gob.encOpFor.func1(0xc000385140, 0xc000422cc0, {0x669580, 0xc0002649d8, 0xc0001cecb0})
    /home/chenshihan/.go/src/encoding/gob/encode.go:551 +0x216
encoding/gob.(*Encoder).encodeSingle(0xc00049a1e0, 0xc00049a218, 0xc000394030, {0x669580, 0xc0002649d8, 0x481500})
    /home/chenshihan/.go/src/encoding/gob/encode.go:301 +0x3eb
encoding/gob.(*Encoder).encode(0xc00049a1e0, 0x44, {0x669580, 0xc0002649d8, 0xc000388880}, 0xc000388880)
    /home/chenshihan/.go/src/encoding/gob/encode.go:703 +0x25a
encoding/gob.(*Encoder).EncodeValue(0xc00049a1e0, {0x669580, 0xc0002649d8, 0x604e9c})
    /home/chenshihan/.go/src/encoding/gob/encoder.go:251 +0x730
encoding/gob.(*Encoder).Encode(0x669580, {0x669580, 0xc0002649d8})
    /home/chenshihan/.go/src/encoding/gob/encoder.go:176 +0x153
6.824/labgob.(*LabEncoder).Encode(0xc0003d2568, {0x669580, 0xc0002649d8})
    /home/chenshihan/xiaohu/6.824/src/labgob/labgob.go:34 +0x5f
6.824/raft.(*Raft).getSerializedRaftState(0xc0001ae000)
    /home/chenshihan/xiaohu/6.824/src/raft/raft.go:290 +0x151
6.824/raft.(*Raft).persist(0xc0001ae000)
    /home/chenshihan/xiaohu/6.824/src/raft/raft.go:295 +0x2f
6.824/raft.(*Raft).AppendEntries(0xc0001ae000, 0xc000422b40, 0xc0000b0a40)
    /home/chenshihan/xiaohu/6.824/src/raft/raft.go:534 +0xc6b
reflect.Value.call({0xc00011e360, 0xc000010540, 0xc0002f7bc0}, {0x6a7fa1, 0x4}, {0xc0001cfbf0, 0x3, 0x68fc60})
    /home/chenshihan/.go/src/reflect/value.go:543 +0xe54
reflect.Value.Call({0xc00011e360, 0xc000010540, 0xc0003d2358}, {0xc0001cfbf0, 0x3, 0x3})
    /home/chenshihan/.go/src/reflect/value.go:339 +0xd8
6.824/labrpc.(*Service).dispatch(0xc0005904c0, {0x6ab1c0, 0xd}, {{0x66d320, 0xc0000af290}, {0x6ab1bb, 0x12}, {0x7023c0, 0x664f40}, {0xc00025e500, ...}, ...})
    /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:499 +0x49c
6.824/labrpc.(*Server).dispatch(0xc0025024b0, {{0x66d320, 0xc0000af290}, {0x6ab1bb, 0x12}, {0x7023c0, 0x664f40}, {0xc00025e500, 0x1f6, 0x256}, ...})
    /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:423 +0x266
6.824/labrpc.(*Network).processReq.func1()
    /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:243 +0x9d
created by 6.824/labrpc.(*Network).processReq
    /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:242 +0x294
exit status 2
FAIL    6.824/kvraft    38.576s==================
WARNING: DATA RACE
Read at 0x00c0006106e0 by goroutine 197:
  reflect.Value.Int()
      /home/chenshihan/.go/src/reflect/value.go:1324 +0xa6
  encoding/gob.encInt()
      /home/chenshihan/.go/src/encoding/gob/encode.go:188 +0x80
  encoding/gob.(*Encoder).encodeStruct()
      /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x569
  encoding/gob.(*Encoder).encode()
      /home/chenshihan/.go/src/encoding/gob/encode.go:701 +0x28d
  encoding/gob.(*Encoder).encodeInterface()
      /home/chenshihan/.go/src/encoding/gob/encode.go:419 +0x9b4
  encoding/gob.encOpFor.func5()
      /home/chenshihan/.go/src/encoding/gob/encode.go:589 +0x24c
  encoding/gob.(*Encoder).encodeStruct()
      /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x569
01:24:19.134242 [term #2] send log [2] -> [3], range [1020, 1021), success
  encoding/gob.encOpFor.func4()
      /home/chenshihan/.go/src/encoding/gob/encode.go:581 +0x168
  encoding/gob.(*Encoder).encodeArray()
      /home/chenshihan/.go/src/encoding/gob/encode.go:351 +0x39a
  encoding/gob.encOpFor.func1()
      /home/chenshihan/.go/src/encoding/gob/encode.go:551 +0x215
  encoding/gob.(*Encoder).encodeSingle()
      /home/chenshihan/.go/src/encoding/gob/encode.go:301 +0x3ea
  encoding/gob.(*Encoder).encode()
      /home/chenshihan/.go/src/encoding/gob/encode.go:703 +0x259
  encoding/gob.(*Encoder).EncodeValue()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:251 +0x72f
  encoding/gob.(*Encoder).Encode()
      /home/chenshihan/.go/src/encoding/gob/encoder.go:176 +0x152
  6.824/labgob.(*LabEncoder).Encode()
      /home/chenshihan/xiaohu/6.824/src/labgob/labgob.go:34 +0x5e
  6.824/raft.(*Raft).getSerializedRaftState()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:290 +0x150
  6.824/raft.(*Raft).persist()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:295 +0x2e
  6.824/raft.(*Raft).AppendEntries()
      /home/chenshihan/xiaohu/6.824/src/raft/raft.go:534 +0xc6a
  runtime.call32()
      /home/chenshihan/.go/src/runtime/asm_amd64.s:626 +0x48
  reflect.Value.Call()
      /home/chenshihan/.go/src/reflect/value.go:339 +0xd7
  6.824/labrpc.(*Service).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:499 +0x49b
  6.824/labrpc.(*Server).dispatch()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:423 +0x265
  6.824/labrpc.(*Network).processReq.func1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:243 +0x9c

Previous write at 0x00c0006106e0 by goroutine 175:
  time.NewTimer()
      /home/chenshihan/.go/src/time/sleep.go:89 +0x64
  time.After()
      /home/chenshihan/.go/src/time/sleep.go:161 +0x4ba
  6.824/labrpc.(*Network).processReq()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:257 +0x51c
  6.824/labrpc.MakeNetwork.func1·dwrap·1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x9c

Goroutine 197 (running) created at:
  6.824/labrpc.(*Network).processReq()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:242 +0x293
  6.824/labrpc.MakeNetwork.func1·dwrap·1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x9c

Goroutine 175 (finished) created at:
  6.824/labrpc.MakeNetwork.func1()
      /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:160 +0x48
==================
panic: runtime error: growslice: cap out of range [recovered]
    panic: runtime error: growslice: cap out of range [recovered]
    panic: runtime error: growslice: cap out of range

goroutine 102015 [running]:
encoding/gob.catchError(0xc00049a270)
    /home/chenshihan/.go/src/encoding/gob/error.go:38 +0xb9
panic({0x679380, 0x6f8810})
    /home/chenshihan/.go/src/runtime/panic.go:1047 +0x266
encoding/gob.catchError(0xc00049a270)
    /home/chenshihan/.go/src/encoding/gob/error.go:38 +0xb9
panic({0x679380, 0x6f8810})
    /home/chenshihan/.go/src/runtime/panic.go:1047 +0x266
encoding/gob.(*encBuffer).WriteString(...)
    /home/chenshihan/.go/src/encoding/gob/encode.go:60
encoding/gob.encString(0xc0000141b0, 0xc000422dc0, {0x66d320, 0xc0006106e8, 0x1})
    /home/chenshihan/.go/src/encoding/gob/encode.go:256 +0x1dc
encoding/gob.(*Encoder).encodeStruct(0xc00049a1e0, 0xc0009286c0, 0xc0003146a8, {0x694b40, 0xc0006106e0, 0x438ead})
    /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x56a
encoding/gob.(*Encoder).encode(0xc00049a1e0, 0x49, {0x694b40, 0xc0006106e0, 0xc000121b40}, 0xc000121b40)
    /home/chenshihan/.go/src/encoding/gob/encode.go:701 +0x28e
encoding/gob.(*Encoder).encodeInterface(0xc00049a1e0, 0xc00049a218, {0x674a20, 0xc00039c230, 0x49f325})
    /home/chenshihan/.go/src/encoding/gob/encode.go:419 +0x9b5
encoding/gob.encOpFor.func5(0xc000398030, 0xc000422d40, {0x674a20, 0xc00039c230, 0x1})
    /home/chenshihan/.go/src/encoding/gob/encode.go:589 +0x24d
encoding/gob.(*Encoder).encodeStruct(0xc00049a1e0, 0xc00049a218, 0xc000394048, {0x681a80, 0xc00039c228, 0xc000142b90})
    /home/chenshihan/.go/src/encoding/gob/encode.go:328 +0x56a
encoding/gob.encOpFor.func4(0x0, 0xc000422d00, {0x681a80, 0xc00039c228, 0x0})
    /home/chenshihan/.go/src/encoding/gob/encode.go:581 +0x169
encoding/gob.(*Encoder).encodeArray(0xc00049a1e0, 0xc00049a218, {0x669580, 0xc0002649d8, 0x5efd13}, 0xc000382c90, 0x0, 0x9, 0x0)
    /home/chenshihan/.go/src/encoding/gob/encode.go:351 +0x39b
encoding/gob.encOpFor.func1(0xc000385140, 0xc000422cc0, {0x669580, 0xc0002649d8, 0xc0001cecb0})
    /home/chenshihan/.go/src/encoding/gob/encode.go:551 +0x216
encoding/gob.(*Encoder).encodeSingle(0xc00049a1e0, 0xc00049a218, 0xc000394030, {0x669580, 0xc0002649d8, 0x481500})
    /home/chenshihan/.go/src/encoding/gob/encode.go:301 +0x3eb
encoding/gob.(*Encoder).encode(0xc00049a1e0, 0x44, {0x669580, 0xc0002649d8, 0xc000388880}, 0xc000388880)
    /home/chenshihan/.go/src/encoding/gob/encode.go:703 +0x25a
encoding/gob.(*Encoder).EncodeValue(0xc00049a1e0, {0x669580, 0xc0002649d8, 0x604e9c})
    /home/chenshihan/.go/src/encoding/gob/encoder.go:251 +0x730
encoding/gob.(*Encoder).Encode(0x669580, {0x669580, 0xc0002649d8})
    /home/chenshihan/.go/src/encoding/gob/encoder.go:176 +0x153
6.824/labgob.(*LabEncoder).Encode(0xc0003d2568, {0x669580, 0xc0002649d8})
    /home/chenshihan/xiaohu/6.824/src/labgob/labgob.go:34 +0x5f
6.824/raft.(*Raft).getSerializedRaftState(0xc0001ae000)
    /home/chenshihan/xiaohu/6.824/src/raft/raft.go:290 +0x151
6.824/raft.(*Raft).persist(0xc0001ae000)
    /home/chenshihan/xiaohu/6.824/src/raft/raft.go:295 +0x2f
6.824/raft.(*Raft).AppendEntries(0xc0001ae000, 0xc000422b40, 0xc0000b0a40)
    /home/chenshihan/xiaohu/6.824/src/raft/raft.go:534 +0xc6b
reflect.Value.call({0xc00011e360, 0xc000010540, 0xc0002f7bc0}, {0x6a7fa1, 0x4}, {0xc0001cfbf0, 0x3, 0x68fc60})
    /home/chenshihan/.go/src/reflect/value.go:543 +0xe54
reflect.Value.Call({0xc00011e360, 0xc000010540, 0xc0003d2358}, {0xc0001cfbf0, 0x3, 0x3})
    /home/chenshihan/.go/src/reflect/value.go:339 +0xd8
6.824/labrpc.(*Service).dispatch(0xc0005904c0, {0x6ab1c0, 0xd}, {{0x66d320, 0xc0000af290}, {0x6ab1bb, 0x12}, {0x7023c0, 0x664f40}, {0xc00025e500, ...}, ...})
    /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:499 +0x49c
6.824/labrpc.(*Server).dispatch(0xc0025024b0, {{0x66d320, 0xc0000af290}, {0x6ab1bb, 0x12}, {0x7023c0, 0x664f40}, {0xc00025e500, 0x1f6, 0x256}, ...})
    /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:423 +0x266
6.824/labrpc.(*Network).processReq.func1()
    /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:243 +0x9d
created by 6.824/labrpc.(*Network).processReq
    /home/chenshihan/xiaohu/6.824/src/labrpc/labrpc.go:242 +0x294
exit status 2
FAIL    6.824/kvraft    38.576s

commit: 717c1e6ec60a41af5547997db2cd035317919e92