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

race condition at the startup with server mode #308

Open
fahadnaeemkhan opened this issue Dec 4, 2023 · 0 comments
Open

race condition at the startup with server mode #308

fahadnaeemkhan opened this issue Dec 4, 2023 · 0 comments

Comments

@fahadnaeemkhan
Copy link
Contributor

fahadnaeemkhan commented Dec 4, 2023

I think the root cause is that pointer to types.TargetConfig is shared between multiple gogoutines without protection.

One fix could be to either add mutex to types.TargetConfig and use it on all the accesses or send copy between goroutines.

==================
WARNING: DATA RACE
Read at 0x00c000eb0700 by goroutine 180:
  google.golang.org/grpc/credentials.tlsCreds.Info()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/credentials/tls.go:69 +0xd3
  google.golang.org/grpc/credentials.(*tlsCreds).Info()
      <autogenerated>:1 +0x29
  google.golang.org/grpc.(*ClientConn).validateTransportCredentials()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:470 +0x176
  google.golang.org/grpc.DialContext()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:195 +0xf79
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func1()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:121 +0x64c
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func3()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:133 +0x4f

Previous write at 0x00c000eb0700 by goroutine 152:
  crypto/tls.(*Config).Clone()
      /usr/local/go/src/crypto/tls/common.go:833 +0xca
  google.golang.org/grpc/internal/credentials.CloneTLSConfig()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/internal/credentials/util.go:51 +0x44
  google.golang.org/grpc/credentials.NewTLS()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/credentials/tls.go:143 +0x45
  github.com/openconfig/gnmic/pkg/types.(*TargetConfig).GrpcDialOptions()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/types@v0.1.1/target.go:132 +0x48d
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:81 +0x13d
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 180 (running) created at:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:96 +0x573
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 152 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d

Repo

Build gnmic with -race flag and run gnmic with server mode and you could see this at the startup

GNMIC version

v0.34.3

Full Logs:

./gnmic --config configs/jeff_gnmic-server.yaml subscribe
2023/12/04 23:15:35.269862 [gnmic] version=dev, commit=none, date=unknown, gitURL=, docs=https://gnmic.openconfig.net
2023/12/04 23:15:35.269905 [gnmic] using config file "configs/jeff_gnmic-server.yaml"
1 {"name":"openconfig-arrcus","encoding":"proto","stream-subscriptions":[{"paths":["openconfig-interfaces:interfaces/interface","openconfig-platform:components/component","openconfig-network-instance:network-instances","openconfig-lldp:lldp/interfaces/interface/neighbors","openconfig-bfd:bfd/interfaces/interface","arcos-hardware:hardware/units","openconfig-system:system/arcos-openconfig-system-augments:version/state/sw-version","openconfig-system:system/state/hostname"],"stream-mode":"sample","sample-interval":30000000000},{"paths":["openconfig-interfaces:interfaces/interface/state/admin-status","openconfig-interfaces:interfaces/interface/state/oper-status","openconfig-interfaces:interfaces/interface/state/mtu","openconfig-interfaces:interfaces/interface/state/type","openconfig-interfaces:interfaces/interface/state/description","openconfig-network-instance:network-instances/network-instance/protocols/protocol/bgp/arcos-openconfigbgp-augments:all-neighbors/all-neighbor/state/session-state","openconfig-network-instance:network-instances/network-instance/protocols/protocol/bgp/arcos-openconfigbgp-augments:all-neighbors/all-neighbor/state/enabled"],"stream-mode":"on-change"}]}
2 {"name":"openconfig-arrcus","mode":"stream","stream-mode":"target-defined","encoding":"proto","stream-subscriptions":[{"paths":["openconfig-interfaces:interfaces/interface","openconfig-platform:components/component","openconfig-network-instance:network-instances","openconfig-lldp:lldp/interfaces/interface/neighbors","openconfig-bfd:bfd/interfaces/interface","arcos-hardware:hardware/units","openconfig-system:system/arcos-openconfig-system-augments:version/state/sw-version","openconfig-system:system/state/hostname"],"stream-mode":"sample","sample-interval":30000000000},{"paths":["openconfig-interfaces:interfaces/interface/state/admin-status","openconfig-interfaces:interfaces/interface/state/oper-status","openconfig-interfaces:interfaces/interface/state/mtu","openconfig-interfaces:interfaces/interface/state/type","openconfig-interfaces:interfaces/interface/state/description","openconfig-network-instance:network-instances/network-instance/protocols/protocol/bgp/arcos-openconfigbgp-augments:all-neighbors/all-neighbor/state/session-state","openconfig-network-instance:network-instances/network-instance/protocols/protocol/bgp/arcos-openconfigbgp-augments:all-neighbors/all-neighbor/state/enabled"],"stream-mode":"on-change"}]}
3 {"name":"openconfig-arrcus","mode":"stream","stream-mode":"target-defined","encoding":"proto","stream-subscriptions":[{"paths":["openconfig-interfaces:interfaces/interface","openconfig-platform:components/component","openconfig-network-instance:network-instances","openconfig-lldp:lldp/interfaces/interface/neighbors","openconfig-bfd:bfd/interfaces/interface","arcos-hardware:hardware/units","openconfig-system:system/arcos-openconfig-system-augments:version/state/sw-version","openconfig-system:system/state/hostname"],"stream-mode":"sample","sample-interval":30000000000},{"paths":["openconfig-interfaces:interfaces/interface/state/admin-status","openconfig-interfaces:interfaces/interface/state/oper-status","openconfig-interfaces:interfaces/interface/state/mtu","openconfig-interfaces:interfaces/interface/state/type","openconfig-interfaces:interfaces/interface/state/description","openconfig-network-instance:network-instances/network-instance/protocols/protocol/bgp/arcos-openconfigbgp-augments:all-neighbors/all-neighbor/state/session-state","openconfig-network-instance:network-instances/network-instance/protocols/protocol/bgp/arcos-openconfigbgp-augments:all-neighbors/all-neighbor/state/enabled"],"stream-mode":"on-change"}]}
1 {"name":"pan-interface","encoding":"json","stream-subscriptions":[{"paths":["/interfaces"],"stream-mode":"sample","sample-interval":30000000000}]}
2 {"name":"pan-interface","mode":"stream","stream-mode":"target-defined","encoding":"json","stream-subscriptions":[{"paths":["/interfaces"],"stream-mode":"sample","sample-interval":30000000000}]}
3 {"name":"pan-interface","mode":"stream","stream-mode":"target-defined","encoding":"json","stream-subscriptions":[{"paths":["/interfaces"],"stream-mode":"sample","sample-interval":30000000000}]}
2023/12/04 23:15:35.271453 [config] validating processor "proc-add-tags" config
2023/12/04 23:15:35.271469 [config] validating processor "port-state" config
2023/12/04 23:15:35.271481 [config] validating processor "bgp-session-state" config
2023/12/04 23:15:35.271493 [config] validating processor "component-states" config
2023/12/04 23:15:35.326534 [gnmic] starting output type prometheus
2023/12/04 23:15:35.329539 [gnmic] queuing target "pan2"
2023/12/04 23:15:35.330705 [gnmic] queuing target "pan3"
2023/12/04 23:15:35.330592 [gnmic] queuing target "pan6"
2023/12/04 23:15:35.329628 [gnmic] queuing target "use4-ngn.gv52.lab.equinix.com:9339"
2023/12/04 23:15:35.330924 [gnmic] queuing target "pan7"
2023/12/04 23:15:35.330179 [gnmic] queuing target "pan4"
2023/12/04 23:15:35.330517 [gnmic] queuing target "pan1"
2023/12/04 23:15:35.331091 [gnmic] queuing target "pan8"
2023/12/04 23:15:35.331119 [gnmic] subscribing to target: "pan2"
2023/12/04 23:15:35.332350 [gnmic] starting target "pan2" listener
2023/12/04 23:15:35.332335 [gnmic] queuing target "bb1-ngn.gv51.lab.equinix.com:9339"
2023/12/04 23:15:35.332491 [gnmic] subscribing to target: "pan3"
2023/12/04 23:15:35.332549 [gnmic] queuing target "sit-tb1-a2.ot1.tlab.equinix.com:9339"
2023/12/04 23:15:35.332706 [gnmic] starting target "pan3" listener
2023/12/04 23:15:35.332767 [gnmic] subscribing to target: "pan6"
2023/12/04 23:15:35.332976 [gnmic] starting target "pan6" listener
2023/12/04 23:15:35.333295 [gnmic] queuing target "pan9"
2023/12/04 23:15:35.333317 [gnmic] queuing target "pan5"
2023/12/04 23:15:35.333306 [gnmic] queuing target "pan10"
2023/12/04 23:15:35.333296 [gnmic] queuing target "sit-tb1-a1.ot1.tlab.equinix.com:9339"
2023/12/04 23:15:35.333325 [gnmic] queuing target "sit-tb1-e14.dc5.tlab.equinix.com:9339"
2023/12/04 23:15:35.333562 [gnmic] added event processor 'port-state' of type=event-strings to file output
==================
WARNING: DATA RACE
Write at 0x00c000bd65e0 by goroutine 119:
  runtime.slicecopy()
      /usr/local/go/src/runtime/slice.go:310 +0x0
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:85 +0x1fc
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Previous write at 0x00c000bd65e0 by goroutine 117:
  runtime.slicecopy()
      /usr/local/go/src/runtime/slice.go:310 +0x0
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:85 +0x1fc
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 119 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d

Goroutine 117 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d
==================
==================
WARNING: DATA RACE
Write at 0x00c000bd65f0 by goroutine 119:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:86 +0x316
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Previous read at 0x00c000bd65f0 by goroutine 122:
  google.golang.org/grpc.DialContext()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:164 +0x547
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func1()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:121 +0x64c
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func3()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:133 +0x4f

Goroutine 119 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d

Goroutine 122 (running) created at:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:96 +0x573
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64
==================
==================
WARNING: DATA RACE
Read at 0x00c0007060f8 by goroutine 122:
  google.golang.org/grpc.(*funcDialOption).apply()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/dialoptions.go:119 +0x30
  google.golang.org/grpc.DialContext()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:178 +0x68f
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func1()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:121 +0x64c
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func3()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:133 +0x4f

Previous write at 0x00c0007060f8 by goroutine 121:
  google.golang.org/grpc.newFuncDialOption()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/dialoptions.go:124 +0x36e
  google.golang.org/grpc.WithTransportCredentials()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/dialoptions.go:374 +0x2ef
  github.com/openconfig/gnmic/pkg/types.(*TargetConfig).GrpcDialOptions()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/types@v0.1.1/target.go:121 +0x3b3
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:81 +0x13d
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 122 (running) created at:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:96 +0x573
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 121 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d
==================
==================
WARNING: DATA RACE
Read at 0x00c00118a028 by goroutine 122:
  google.golang.org/grpc.(*funcDialOption).apply()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/dialoptions.go:119 +0x30
  google.golang.org/grpc.DialContext()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:178 +0x68f
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func1()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:121 +0x64c
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func3()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:133 +0x4f

Previous write at 0x00c00118a028 by goroutine 119:
  google.golang.org/grpc.newFuncDialOption()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/dialoptions.go:124 +0x26a
  google.golang.org/grpc.WithBlock()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/dialoptions.go:318 +0x251
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:86 +0x29b
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 122 (running) created at:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:96 +0x573
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 119 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d
==================
==================
WARNING: DATA RACE
Write at 0x00c000bd65f0 by goroutine 121:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:86 +0x316
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Previous write at 0x00c000bd65f0 by goroutine 117:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:86 +0x316
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 121 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d

Goroutine 117 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d
==================
2023/12/04 23:15:35.337047 [gnmic] starting target "use4-ngn.gv52.lab.equinix.com:9339" listener
2023/12/04 23:15:35.337102 [gnmic] subscribing to target: "use4-ngn.gv52.lab.equinix.com:9339"
2023/12/04 23:15:35.337263 [gnmic] subscribing to target: "pan7"
2023/12/04 23:15:35.337272 [gnmic] starting target "pan7" listener
2023/12/04 23:15:35.337471 [gnmic] starting target "pan4" listener
2023/12/04 23:15:35.337470 [gnmic] subscribing to target: "pan4"
==================
2023/12/04 23:15:35.337571 [gnmic] starting target "pan1" listener
WARNING: DATA RACE
Write at 0x00c000bd65f0 by goroutine 130:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:86 +0x316
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Previous read at 0x00c000bd65f0 by goroutine 122:
  google.golang.org/grpc.DialContext()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:177 +0x672
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func1()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:121 +0x64c
2023/12/04 23:15:35.337614 [gnmic] subscribing to target: "pan1"
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func3()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:133 +0x4f

Goroutine 130 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d

Goroutine 122 (running) created at:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:96 +0x573
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64
==================
2023/12/04 23:15:35.337873 [gnmic] starting target "pan8" listener
2023/12/04 23:15:35.337935 [gnmic] subscribing to target: "bb1-ngn.gv51.lab.equinix.com:9339"
2023/12/04 23:15:35.338125 [gnmic] starting target "bb1-ngn.gv51.lab.equinix.com:9339" listener
2023/12/04 23:15:35.337926 [gnmic] subscribing to target: "pan8"
2023/12/04 23:15:35.338255 [gnmic] starting target "sit-tb1-a2.ot1.tlab.equinix.com:9339" listener
==================
WARNING: DATA RACE
2023/12/04 23:15:35.338312 [gnmic] subscribing to target: "sit-tb1-a2.ot1.tlab.equinix.com:9339"
Write at 0x00c000bd65e0 by goroutine 142:
  runtime.slicecopy()
      /usr/local/go/src/runtime/slice.go:310 +0x0
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:85 +0x1fc
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Previous read at 0x00c000bd65e0 by goroutine 145:
  google.golang.org/grpc.DialContext()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:164 +0x547
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func1()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:121 +0x64c
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func3()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:133 +0x4f

Goroutine 142 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d

Goroutine 145 (running) created at:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:96 +0x573
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64
==================
2023/12/04 23:15:35.338578 [gnmic] starting target "pan9" listener
2023/12/04 23:15:35.338771 [gnmic] starting target "pan5" listener
2023/12/04 23:15:35.338683 [gnmic] subscribing to target: "pan9"
2023/12/04 23:15:35.338690 [gnmic] subscribing to target: "pan5"
2023/12/04 23:15:35.338818 [gnmic] added event processor 'bgp-session-state' of type=event-strings to file output
2023/12/04 23:15:35.339175 [gnmic] subscribing to target: "pan10"
2023/12/04 23:15:35.339161 [gnmic] starting target "pan10" listener
2023/12/04 23:15:35.339280 [gnmic] starting target "sit-tb1-a1.ot1.tlab.equinix.com:9339" listener
2023/12/04 23:15:35.339383 [gnmic] starting target "sit-tb1-e14.dc5.tlab.equinix.com:9339" listener
2023/12/04 23:15:35.339339 [gnmic] subscribing to target: "sit-tb1-a1.ot1.tlab.equinix.com:9339"
2023/12/04 23:15:35.339414 [gnmic] subscribing to target: "sit-tb1-e14.dc5.tlab.equinix.com:9339"
==================
WARNING: DATA RACE
Read at 0x00c00058c028 by goroutine 176:
  google.golang.org/grpc.(*funcDialOption).apply()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/dialoptions.go:119 +0x30
  google.golang.org/grpc.DialContext()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:178 +0x68f
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func1()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:121 +0x64c
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func3()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:133 +0x4f

Previous write at 0x00c00058c028 by goroutine 152:
  google.golang.org/grpc.newFuncDialOption()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/dialoptions.go:124 +0x531
  google.golang.org/grpc.WithTransportCredentials()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/dialoptions.go:374 +0x48e
  github.com/openconfig/gnmic/pkg/types.(*TargetConfig).GrpcDialOptions()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/types@v0.1.1/target.go:132 +0x280
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:81 +0x13d
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 176 (running) created at:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:96 +0x573
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 152 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d
==================
==================
WARNING: DATA RACE
Read at 0x00c00058c020 by goroutine 180:
  google.golang.org/grpc/credentials.(*tlsCreds).Info()
      <autogenerated>:1 +0x6d
  google.golang.org/grpc.(*ClientConn).validateTransportCredentials()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:470 +0x176
  google.golang.org/grpc.DialContext()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:195 +0xf79
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func1()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:121 +0x64c
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func3()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:133 +0x4f

Previous write at 0x00c00058c020 by goroutine 152:
  google.golang.org/grpc/credentials.NewTLS()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/credentials/tls.go:143 +0xba
  github.com/openconfig/gnmic/pkg/types.(*TargetConfig).GrpcDialOptions()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/types@v0.1.1/target.go:132 +0x48d
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:81 +0x13d
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 180 (running) created at:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:96 +0x573
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 152 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d
==================
2023/12/04 23:15:35.341542 [gnmic] added event processor 'component-states' of type=event-strings to file output
==================
WARNING: DATA RACE
Read at 0x00c000eb0700 by goroutine 180:
  google.golang.org/grpc/credentials.tlsCreds.Info()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/credentials/tls.go:69 +0xd3
  google.golang.org/grpc/credentials.(*tlsCreds).Info()
      <autogenerated>:1 +0x29
  google.golang.org/grpc.(*ClientConn).validateTransportCredentials()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:470 +0x176
  google.golang.org/grpc.DialContext()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/clientconn.go:195 +0xf79
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func1()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:121 +0x64c
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient.func3()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:133 +0x4f

Previous write at 0x00c000eb0700 by goroutine 152:
  crypto/tls.(*Config).Clone()
      /usr/local/go/src/crypto/tls/common.go:833 +0xca
  google.golang.org/grpc/internal/credentials.CloneTLSConfig()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/internal/credentials/util.go:51 +0x44
  google.golang.org/grpc/credentials.NewTLS()
      /home/equinix/go/pkg/mod/google.golang.org/grpc@v1.59.0/credentials/tls.go:143 +0x45
  github.com/openconfig/gnmic/pkg/types.(*TargetConfig).GrpcDialOptions()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/types@v0.1.1/target.go:132 +0x48d
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:81 +0x13d
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 180 (running) created at:
  github.com/openconfig/gnmic/pkg/target.(*Target).CreateGNMIClient()
      /home/equinix/go/pkg/mod/github.com/openconfig/gnmic/pkg/target@v0.1.1/target.go:96 +0x573
  github.com/openconfig/gnmic/pkg/app.(*App).clientSubscribe()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:208 +0xee6
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream.func1()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:79 +0x64

Goroutine 152 (running) created at:
  github.com/openconfig/gnmic/pkg/app.(*App).TargetSubscribeStream()
      /home/equinix/development/gnmic/pkg/app/gnmi_client_subscribe.go:78 +0xa77
  github.com/openconfig/gnmic/pkg/app.(*App).subscribeStream()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:136 +0xbd
  github.com/openconfig/gnmic/pkg/app.(*App).startIO.func3()
      /home/equinix/development/gnmic/pkg/app/subscribe.go:299 +0x5d
==================
2023/12/04 23:15:35.344002 [prometheus_output:prometheus] initialized prometheus output: {"name":"prometheus","listen":":9804","path":"/metrics","expiration":60000000000,"strings-as-labels":true,"event-processors":["port-state","bgp-session-state","component-states"],"timeout":10000000000,"num-workers":1,"enable-metrics":true}
2023/12/04 23:15:35.349894 [gnmic] target "pan3" gNMI client created
2023/12/04 23:15:35.349909 [gnmic] target "pan6" gNMI client created
2023/12/04 23:15:35.350006 [gnmic] target "pan2" gNMI client created
2023/12/04 23:15:35.350157 [gnmic] target "pan7" gNMI client created
2023/12/04 23:15:35.350251 [gnmic] target "pan4" gNMI client created
2023/12/04 23:15:35.350368 [gnmic] target "pan8" gNMI client created
2023/12/04 23:15:35.350438 [gnmic] target "pan1" gNMI client created
2023/12/04 23:15:35.350086 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"interfaces"}}  mode:SAMPLE  sample_interval:30000000000}}', mode='STREAM', encoding='JSON', to pan2
2023/12/04 23:15:35.349951 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"interfaces"}}  mode:SAMPLE  sample_interval:30000000000}}', mode='STREAM', encoding='JSON', to pan3
2023/12/04 23:15:35.350459 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"interfaces"}}  mode:SAMPLE  sample_interval:30000000000}}', mode='STREAM', encoding='JSON', to pan8
2023/12/04 23:15:35.350018 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"interfaces"}}  mode:SAMPLE  sample_interval:30000000000}}', mode='STREAM', encoding='JSON', to pan6
2023/12/04 23:15:35.350309 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"interfaces"}}  mode:SAMPLE  sample_interval:30000000000}}', mode='STREAM', encoding='JSON', to pan4
2023/12/04 23:15:35.350530 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"interfaces"}}  mode:SAMPLE  sample_interval:30000000000}}', mode='STREAM', encoding='JSON', to pan1
2023/12/04 23:15:35.350215 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"interfaces"}}  mode:SAMPLE  sample_interval:30000000000}}', mode='STREAM', encoding='JSON', to pan7
2023/12/04 23:15:35.357289 [cache:oc] target "pan1" added to local cache "pan-interface"
2023/12/04 23:15:35.357695 [cache:oc] target "pan6" added to local cache "pan-interface"
2023/12/04 23:15:35.358169 [cache:oc] target "pan4" added to local cache "pan-interface"
2023/12/04 23:15:35.360894 [cache:oc] target "pan7" added to local cache "pan-interface"
2023/12/04 23:15:35.361698 [cache:oc] target "pan8" added to local cache "pan-interface"
2023/12/04 23:15:35.362043 [cache:oc] target "pan2" added to local cache "pan-interface"
2023/12/04 23:15:35.362757 [cache:oc] target "pan3" added to local cache "pan-interface"
2023/12/04 23:15:35.447187 [gnmic] target "sit-tb1-a2.ot1.tlab.equinix.com:9339" gNMI client created
2023/12/04 23:15:35.447639 [gnmic] target "sit-tb1-a1.ot1.tlab.equinix.com:9339" gNMI client created
2023/12/04 23:15:35.447309 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-platform:components"}  elem:{name:"component"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-network-instance:network-instances"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-lldp:lldp"}  elem:{name:"interfaces"}  elem:{name:"interface"}  elem:{name:"neighbors"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-bfd:bfd"}  elem:{name:"interfaces"}  elem:{name:"interface"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"arcos-hardware:hardware"}  elem:{name:"units"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-system:system"}  elem:{name:"arcos-openconfig-system-augments:version"}  elem:{name:"state"}  elem:{name:"sw-version"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-system:system"}  elem:{name:"state"}  elem:{name:"hostname"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"admin-status"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"oper-status"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"mtu"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"type"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"description"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-network-instance:network-instances"}  elem:{name:"network-instance"}  elem:{name:"protocols"}  elem:{name:"protocol"}  elem:{name:"bgp"}  elem:{name:"arcos-openconfigbgp-augments:all-neighbors"}  elem:{name:"all-neighbor"}  elem:{name:"state"}  elem:{name:"session-state"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-network-instance:network-instances"}  elem:{name:"network-instance"}  elem:{name:"protocols"}  elem:{name:"protocol"}  elem:{name:"bgp"}  elem:{name:"arcos-openconfigbgp-augments:all-neighbors"}  elem:{name:"all-neighbor"}  elem:{name:"state"}  elem:{name:"enabled"}}  mode:ON_CHANGE}  encoding:PROTO}', mode='STREAM', encoding='PROTO', to sit-tb1-a2.ot1.tlab.equinix.com:9339
2023/12/04 23:15:35.447688 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-platform:components"}  elem:{name:"component"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-network-instance:network-instances"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-lldp:lldp"}  elem:{name:"interfaces"}  elem:{name:"interface"}  elem:{name:"neighbors"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-bfd:bfd"}  elem:{name:"interfaces"}  elem:{name:"interface"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"arcos-hardware:hardware"}  elem:{name:"units"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-system:system"}  elem:{name:"arcos-openconfig-system-augments:version"}  elem:{name:"state"}  elem:{name:"sw-version"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-system:system"}  elem:{name:"state"}  elem:{name:"hostname"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"admin-status"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"oper-status"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"mtu"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"type"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"description"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-network-instance:network-instances"}  elem:{name:"network-instance"}  elem:{name:"protocols"}  elem:{name:"protocol"}  elem:{name:"bgp"}  elem:{name:"arcos-openconfigbgp-augments:all-neighbors"}  elem:{name:"all-neighbor"}  elem:{name:"state"}  elem:{name:"session-state"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-network-instance:network-instances"}  elem:{name:"network-instance"}  elem:{name:"protocols"}  elem:{name:"protocol"}  elem:{name:"bgp"}  elem:{name:"arcos-openconfigbgp-augments:all-neighbors"}  elem:{name:"all-neighbor"}  elem:{name:"state"}  elem:{name:"enabled"}}  mode:ON_CHANGE}  encoding:PROTO}', mode='STREAM', encoding='PROTO', to sit-tb1-a1.ot1.tlab.equinix.com:9339
2023/12/04 23:15:35.449684 [gnmic] target "sit-tb1-e14.dc5.tlab.equinix.com:9339" gNMI client created
2023/12/04 23:15:35.449745 [gnmic] sending gNMI SubscribeRequest: subscribe='subscribe:{subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-platform:components"}  elem:{name:"component"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-network-instance:network-instances"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-lldp:lldp"}  elem:{name:"interfaces"}  elem:{name:"interface"}  elem:{name:"neighbors"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-bfd:bfd"}  elem:{name:"interfaces"}  elem:{name:"interface"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"arcos-hardware:hardware"}  elem:{name:"units"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-system:system"}  elem:{name:"arcos-openconfig-system-augments:version"}  elem:{name:"state"}  elem:{name:"sw-version"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-system:system"}  elem:{name:"state"}  elem:{name:"hostname"}}  mode:SAMPLE  sample_interval:30000000000}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"admin-status"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"oper-status"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"mtu"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"type"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-interfaces:interfaces"}  elem:{name:"interface"}  elem:{name:"state"}  elem:{name:"description"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-network-instance:network-instances"}  elem:{name:"network-instance"}  elem:{name:"protocols"}  elem:{name:"protocol"}  elem:{name:"bgp"}  elem:{name:"arcos-openconfigbgp-augments:all-neighbors"}  elem:{name:"all-neighbor"}  elem:{name:"state"}  elem:{name:"session-state"}}  mode:ON_CHANGE}  subscription:{path:{elem:{name:"openconfig-network-instance:network-instances"}  elem:{name:"network-instance"}  elem:{name:"protocols"}  elem:{name:"protocol"}  elem:{name:"bgp"}  elem:{name:"arcos-openconfigbgp-augments:all-neighbors"}  elem:{name:"all-neighbor"}  elem:{name:"state"}  elem:{name:"enabled"}}  mode:ON_CHANGE}  encoding:PROTO}', mode='STREAM', encoding='PROTO', to sit-tb1-e14.dc5.tlab.equinix.com:9339
10.196.21.67 - - [04/Dec/2023:23:15:35 +0000] "GET /metrics HTTP/1.1" 200 1600
10.196.21.67 - - [04/Dec/2023:23:15:39 +0000] "GET /metrics HTTP/1.1" 200 1611
10.196.21.67 - - [04/Dec/2023:23:15:45 +0000] "GET /metrics HTTP/1.1" 200 1606
10.196.21.67 - - [04/Dec/2023:23:15:49 +0000] "GET /metrics HTTP/1.1" 200 1612
10.196.21.67 - - [04/Dec/2023:23:15:55 +0000] "GET /metrics HTTP/1.1" 200 1608
10.196.21.67 - - [04/Dec/2023:23:15:59 +0000] "GET /metrics HTTP/1.1" 200 1607
10.196.21.67 - - [04/Dec/2023:23:16:05 +0000] "GET /metrics HTTP/1.1" 200 1607
2023/12/04 23:16:05.490400 [cache:oc] target "sit-tb1-a1.ot1.tlab.equinix.com" added to local cache "openconfig-arrcus"
2023/12/04 23:16:05.504777 [cache:oc] target "sit-tb1-e14.dc5.tlab.equinix.com" added to local cache "openconfig-arrcus"
2023/12/04 23:16:05.512877 [cache:oc] target "sit-tb1-a2.ot1.tlab.equinix.com" added to local cache "openconfig-arrcus"
10.196.21.67 - - [04/Dec/2023:23:16:09 +0000] "GET /metrics HTTP/1.1" 200 1685
10.196.21.67 - - [04/Dec/2023:23:16:15 +0000] "GET /metrics HTTP/1.1" 200 1688
10.196.21.67 - - [04/Dec/2023:23:16:19 +0000] "GET /metrics HTTP/1.1" 200 1690
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