Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deadlock #2

Open
choppsv1 opened this issue Dec 9, 2018 · 0 comments
Open

deadlock #2

choppsv1 opened this issue Dec 9, 2018 · 0 comments
Assignees

Comments

@choppsv1
Copy link
Owner

choppsv1 commented Dec 9, 2018

This represents an old deadlock that I have no fully convinced myself doesn't exist. Archiving it here.

- Deadlock
PC=0x4575f1 m=0 sigcode=128

goroutine 0 [idle]:
runtime.futex(0x5e0a60, 0x80, 0x0, 0x0, 0xc000000000, 0x7ffd00000000, 0x0, 0x0, 0x7ffd61510100, 0x40adf2, ...)
        /usr/lib/go/src/runtime/sys_linux_amd64.s:531 +0x21
runtime.futexsleep(0x5e0a60, 0x7ffd00000000, 0xffffffffffffffff)
        /usr/lib/go/src/runtime/os_linux.go:46 +0x4b
runtime.notesleep(0x5e0a60)
        /usr/lib/go/src/runtime/lock_futex.go:151 +0xa2
runtime.stopm()
        /usr/lib/go/src/runtime/proc.go:2016 +0xe3
runtime.findrunnable(0xc00002f900, 0x0)
        /usr/lib/go/src/runtime/proc.go:2487 +0x4dc
runtime.schedule()
        /usr/lib/go/src/runtime/proc.go:2613 +0x13a
runtime.park_m(0xc00007ac00)
        /usr/lib/go/src/runtime/proc.go:2676 +0xae
runtime.mcall(0x0)
        /usr/lib/go/src/runtime/asm_amd64.s:299 +0x5b

goroutine 1 [chan receive]:
main.main()
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/main.go:131 +0x7bc

Per Process Circuit DB Flag handler
  - So this can block and has on the flagsC channel of a link.
goroutine 19 [chan send, 13 minutes]:
main.(*LinkLAN).SetFlag(...)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/link.go:164
main.(*CircuitLAN).SetFlag(0xc0000aed00, 0x502e01, 0xc000446fe8, 0x0)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/circuit.go:306 +0x187
main.(*CircuitDB).processChgFlag(0xc0000904e0, 0xc000446fc0)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/circuitdb.go:48 +0x1b8
main.(*CircuitDB).processChgFlags(0xc0000904e0)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/circuitdb.go:73 +0x36
created by main.NewCircuitDB
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/circuitdb.go:23 +0xa3

Per Level Update Process (clearing a flag (sending to Per Process Circuit DB Flag handler)
goroutine 20 [chan send, 13 minutes]:
github.com/choppsv1/goisis/goisis/update.(*DB).clearFlag(...)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/update/update.go:272
github.com/choppsv1/goisis/goisis/update.(*DB).receiveSNP(0xc0000d6000, 0x7feb58481000, 0xc0000ae6a0, 0x1, 0xc000434ef1, 0x53, 0x53, 0xc0002f42d0)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/update/update.go:650 +0x6ce
github.com/choppsv1/goisis/goisis/update.(*DB).runOnce(0xc0000d6000)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/update/update.go:694 +0x50a
github.com/choppsv1/goisis/goisis/update.(*DB).Run(0xc0000d6000)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/update/update.go:771 +0x2b
created by github.com/choppsv1/goisis/goisis/update.NewDB
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/update/update.go:145 +0x1d7

Per Level Link Flag Processor
goroutine 23 [chan receive, 13 minutes]:
github.com/choppsv1/goisis/goisis/update.(*DB).CopyLSPPayload(...)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/update/update.go:227
main.(*LinkLAN).sendAnLSP(0xc00015a000)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/link.go:254 +0x344
main.(*LinkLAN).processFlags(0xc00015a000)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/link.go:271 +0x48
created by main.NewLinkLAN
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/link.go:125 +0x2e5

Per Level Link Flag Processor
goroutine 27 [chan receive, 13 minutes]:
github.com/choppsv1/goisis/goisis/update.(*DB).CopyLSPPayload(...)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/update/update.go:227
main.(*LinkLAN).sendAnLSP(0xc00015a090)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/link.go:254 +0x344
main.(*LinkLAN).processFlags(0xc00015a090)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/link.go:271 +0x48
created by main.NewLinkLAN
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/link.go:125 +0x2e5

Per Circuit Packet Reader (L1 and L2)
goroutine 24 [chan send, 13 minutes]:
github.com/choppsv1/goisis/goisis/update.(*DB).InputSNP(0xc0000d6000, 0x7feb58481000, 0xc0000ae6a0, 0xc000358941, 0x53, 0x53, 0xc0002d9618, 0xc0001a87b0, 0x0, 0xc000354ac0)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/update/update.go:213 +0x15d
main.(*CircuitBase).readPackets(0xc0000da000, 0x52bc00, 0xc0000ae6a0)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/pktflow.go:54 +0x509
created by main.NewCircuitLAN
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/circuit.go:222 +0x4c6

Per Circuit Packet Reader (L1 and L2)
goroutine 28 [chan send, 13 minutes]:
github.com/choppsv1/goisis/goisis/update.(*DB).InputSNP(0xc0000d6000, 0x7feb58481000, 0xc0000aed00, 0xc000435041, 0x53, 0x53, 0xc0002ef118, 0xc0002f4ff0, 0x0, 0x0)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/update/update.go:213 +0x15d
main.(*CircuitBase).readPackets(0xc0000db900, 0x52bc00, 0xc0000aed00)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/pktflow.go:54 +0x509
created by main.NewCircuitLAN
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/circuit.go:222 +0x4c6

goroutine 22 [select]:
main.helloProcess(0xc0000a2420, 0xc00015a000, 0xc000086120)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/hello.go:99 +0x1c1
created by main.StartHelloProcess
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/hello.go:86 +0xfe

goroutine 25 [select]:
main.(*CircuitBase).writePackets(0xc0000da000)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/pktflow.go:66 +0x144
created by main.NewCircuitLAN
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/circuit.go:223 +0x4ee

goroutine 26 [select]:
main.helloProcess(0xc0000a25a0, 0xc00015a090, 0xc000086120)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/hello.go:99 +0x1c1
created by main.StartHelloProcess
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/hello.go:86 +0xfe

goroutine 29 [select]:
main.(*CircuitBase).writePackets(0xc0000db900)
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/pktflow.go:66 +0x144
created by main.NewCircuitLAN
        /home/chopps/go/src/github.com/choppsv1/goisis/goisis/circuit.go:223 +0x4ee

rax    0xca
rbx    0x5e0920
rcx    0x4575f3
rdx    0x0
rdi    0x5e0a60
rsi    0x80
rbp    0x7ffd615100c8
rsp    0x7ffd61510080
r8     0x0
r9     0x0
r10    0x0
r11    0x286
r12    0x1
r13    0x1
r14    0x0
r15    0xc000086120
rip    0x4575f1
rflags 0x286
cs     0x33
fs     0x0
gs     0x0
@choppsv1 choppsv1 self-assigned this Dec 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant