Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
examplebroker: Use locked access to isAuthenticatedCalls on end session
We had a data race, since we were accessing to the isAuthenticatedCalls map without locking, fix this avoiding lock/unlock dance. WARNING: DATA RACE Read at 0x00c0001a03f0 by goroutine 311: runtime.mapaccess2_faststr() /opt/hostedtoolcache/go/1.23.0/x64/src/runtime/map_faststr.go:117 +0x0 github.com/ubuntu/authd/examplebroker.(*Broker).EndSession() /home/runner/work/authd/authd/examplebroker/broker.go:733 +0xf9 github.com/ubuntu/authd/examplebroker.(*Bus).EndSession() /home/runner/work/authd/authd/examplebroker/dbus.go:115 +0x5b runtime.call32() /opt/hostedtoolcache/go/1.23.0/x64/src/runtime/asm_amd64.s:776 +0x42 reflect.Value.Call() /opt/hostedtoolcache/go/1.23.0/x64/src/reflect/value.go:365 +0xb5 github.com/godbus/dbus/v5.exportedMethod.Call() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/default_handler.go:128 +0x239 github.com/godbus/dbus/v5.(*exportedMethod).Call() <autogenerated>:1 +0x84 github.com/godbus/dbus/v5.(*Conn).handleCall() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/export.go:193 +0x6f2 github.com/godbus/dbus/v5.(*Conn).inWorker.gowrap1() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/conn.go:435 +0x44 Previous write at 0x00c0001a03f0 by goroutine 308: runtime.mapassign_faststr() /opt/hostedtoolcache/go/1.23.0/x64/src/runtime/map_faststr.go:223 +0x0 github.com/ubuntu/authd/examplebroker.(*Broker).IsAuthenticated() /home/runner/work/authd/authd/examplebroker/broker.go:537 +0x276 github.com/ubuntu/authd/examplebroker.(*Bus).IsAuthenticated() /home/runner/work/authd/authd/examplebroker/dbus.go:106 +0x91 runtime.call64() /opt/hostedtoolcache/go/1.23.0/x64/src/runtime/asm_amd64.s:777 +0x42 reflect.Value.Call() /opt/hostedtoolcache/go/1.23.0/x64/src/reflect/value.go:365 +0xb5 github.com/godbus/dbus/v5.exportedMethod.Call() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/default_handler.go:128 +0x239 github.com/godbus/dbus/v5.(*exportedMethod).Call() <autogenerated>:1 +0x84 github.com/godbus/dbus/v5.(*Conn).handleCall() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/export.go:193 +0x6f2 github.com/godbus/dbus/v5.(*Conn).inWorker.gowrap1() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/conn.go:435 +0x44 Goroutine 311 (running) created at: github.com/godbus/dbus/v5.(*Conn).inWorker() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/conn.go:435 +0x46a github.com/godbus/dbus/v5.(*Conn).Auth.gowrap1() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/auth.go:118 +0x33 Goroutine 308 (running) created at: github.com/godbus/dbus/v5.(*Conn).inWorker() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/conn.go:435 +0x46a github.com/godbus/dbus/v5.(*Conn).Auth.gowrap1() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/auth.go:118 +0x33 github.com/godbus/dbus/v5.(*Conn).inWorker.gowrap1() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/conn.go:435 +0x44 Previous write at 0x00c0001a03f0 by goroutine 308: runtime.mapassign_faststr() /opt/hostedtoolcache/go/1.23.0/x64/src/runtime/map_faststr.go:223 +0x0 github.com/ubuntu/authd/examplebroker.(*Broker).IsAuthenticated() /home/runner/work/authd/authd/examplebroker/broker.go:537 +0x276 github.com/ubuntu/authd/examplebroker.(*Bus).IsAuthenticated() /home/runner/work/authd/authd/examplebroker/dbus.go:106 +0x91 runtime.call64() /opt/hostedtoolcache/go/1.23.0/x64/src/runtime/asm_amd64.s:777 +0x42 reflect.Value.Call() /opt/hostedtoolcache/go/1.23.0/x64/src/reflect/value.go:365 +0xb5 github.com/godbus/dbus/v5.exportedMethod.Call() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/default_handler.go:128 +0x239 github.com/godbus/dbus/v5.(*exportedMethod).Call() <autogenerated>:1 +0x84 github.com/godbus/dbus/v5.(*Conn).handleCall() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/export.go:193 +0x6f2 github.com/godbus/dbus/v5.(*Conn).inWorker.gowrap1() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/conn.go:435 +0x44 Goroutine 311 (running) created at: github.com/godbus/dbus/v5.(*Conn).inWorker() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/conn.go:435 +0x46a github.com/godbus/dbus/v5.(*Conn).Auth.gowrap1() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/auth.go:118 +0x33 Goroutine 308 (running) created at: github.com/godbus/dbus/v5.(*Conn).inWorker() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/conn.go:435 +0x46a github.com/godbus/dbus/v5.(*Conn).Auth.gowrap1() /home/runner/go/pkg/mod/github.com/godbus/dbus/[email protected]/auth.go:118 +0x33
- Loading branch information