Skip to content
  • Philipp Winter's avatar
    Use mutex in FracFunctional to protect map access. · d30ebe0f
    Philipp Winter authored
    This should fix a race condition that we ran into in deployment:
    
        fatal error: concurrent map iteration and map write
    
        goroutine 98984 [running]:
        runtime.throw(0x95bb18, 0x26)
                /home/phw/sw/go/src/runtime/panic.go:1116 +0x72 fp=0xc0001735a8 sp=0xc000173578 pc=0x437e32
        runtime.mapiternext(0xc000173650)
                /home/phw/sw/go/src/runtime/map.go:853 +0x554 fp=0xc000173628 sp=0xc0001735a8 pc=0x412534
        main.(*TestCache).FracFunctional(0xc00016e960, 0xc00014a990)
                /home/phw/rcs/bridgestrap/cache.go:64 +0xbb fp=0xc0001736c0 sp=0xc000173628 pc=0x8610db
        main.(*TestCache).AddEntry(0xc00016e960, 0xc00031caa0, 0x98, 0x9dab00, 0xc00002e060, 0x13d5c8c, 0xed78148dc, 0x0)
                /home/phw/rcs/bridgestrap/cache.go:161 +0x17c fp=0xc000173730 sp=0xc0001736c0 pc=0x861c5c
        main.testBridgeLines(0xc00000f500, 0x1c)
    d30ebe0f