github-vet / github-vet/rangeloop-pointer-findings
openshift/ci-operator-prowgen: pkg/rehearse/jobs.go; 3 LoC
- Dominant language
- No language data
- Stars
- 0
- Forks
- 0
- PR merge metrics
- PR metrics pending
Description
Found a possible issue in [openshift/ci-operator-prowgen](https://www.github.com/openshift/ci-operator-prowgen) at [pkg/rehearse/jobs.go](https://github.com/openshift/ci-operator-prowgen/blob/b04e70ef12e9960a519367f66bef7985dc65b97e/pkg/rehearse/jobs.go#L346-L348)
Below is the message reported by the analyzer for this snippet of code. Beware that the analyzer only reports the first
issue it finds, so please do not limit your consideration to the contents of the below message.
> function call which takes a reference to s at line 347 may start a goroutine
[Click here to see the code in its original context.](https://github.com/openshift/ci-operator-prowgen/blob/b04e70ef12e9960a519367f66bef7985dc65b97e/pkg/rehearse/jobs.go#L346-L348)
Click here to show the 3 line(s) of Go which triggered the analyzer.
```go
for _, s := range v.Projected.Sources {
replace(&s)
}
```
Click here to show extra information the analyzer produced.
```
The following paths through the callgraph could lead to a goroutine:
(replace, 1) -> (Len, 0) -> (int, 1) -> (int64, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2)
(replace, 1) -> (Len, 0) -> (int, 1) -> (int64, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2) -> (start, 0) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2)
(replace, 1) -> (Len, 0) -> (int, 1) -> (int64, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2) -> (start, 0) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2) -> (lbWatcher, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Marshal, 1) -> (ValueOf, 1) -> (yaml_document_end_event_initialize, 2) -> (RegisterPushEventHandler, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (DecodeResponse, 2) -> (NewDecoder, 1) -> (newParserFromReader, 1) -> (yaml_parser_set_input_reader, 2) -> (handlePullRequestEvent, 2) -> (handlePullRequest, 4)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (doRequest, 1) -> (cleanup, 0) -> (isEOFOrNetReadError, 1) -> (filterOutClientConn, 2) -> (start, 0) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Marshal, 1) -> (ValueOf, 1) -> (yaml_document_end_event_initialize, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Marshal, 1) -> (ValueOf, 1) -> (yaml_document_end_event_initialize, 2) -> (RegisterPushEventHandler, 3) -> (handleGenericComment, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Has, 1) -> (LazyPrintf, 2) -> (addEvent, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1) -> (NewNotFound, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (getTrimmed, 1) -> (TrimSpace, 1) -> (NewNotFound, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (CloseBody, 1) -> (Read, 1) -> (Scan, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (SetTransportDefaults, 1) -> (Warningf, 2) -> (Printf, 2) -> (convertArgs, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (handleGenericComment, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (getTrimmed, 1) -> (TrimSpace, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (WaitForMarker, 2) -> (NewTicker, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (getTrimmed, 1) -> (TrimSpace, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Run, 2) -> (WithField, 2)
(replace, 1) -> (Add, 2) -> (string, 1) -> (stringOff, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2) -> (LazyPrintf, 2) -> (addEvent, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Close, 0)
(replace, 1) -> (Len, 0) -> (int, 1) -> (int64, 1) -> (Write, 1) -> (Encode, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (getTrimmed, 1) -> (TrimSpace, 1) -> (NewNotFound, 2) -> (Infof, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (watcher, 0) -> (NewServiceConfig, 1) -> (handleServiceConfig, 1) -> (parseServiceConfig, 1) -> (generatePath, 0) -> (HasFired, 0)
(replace, 1) -> (Add, 2) -> (updateIndices, 3) -> (Insert, 1) -> (Delete, 1) -> (PushFunc, 1) -> (dedupDeltas, 1) -> (isDup, 2) -> (glob, 2) -> (FastWalk, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (SetTransportDefaults, 1) -> (Warningf, 2) -> (Printf, 2) -> (convertArgs, 1) -> (run, 3) -> (addConnLocked, 2) -> (newClientConn, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Marshal, 1) -> (ValueOf, 1) -> (yaml_document_end_event_initialize, 2) -> (RegisterPushEventHandler, 3) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (DecodeResponse, 2) -> (NewDecoder, 1) -> (newParserFromReader, 1) -> (yaml_parser_set_input_reader, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Has, 1) -> (NewWatcher, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Has, 1) -> (append, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Close, 0) -> (handleErr, 1) -> (recover, 0) -> (newFamily, 0) -> (append, 1)
(replace, 1) -> (Add, 2) -> (string, 1) -> (stringOff, 1) -> (Write, 1) -> (Encode, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1) -> (NewNotFound, 2) -> (Infof, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (RecognizesData, 1) -> (NewBuffer, 1) -> (Scan, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (watcher, 0) -> (NewServiceConfig, 1) -> (handleServiceConfig, 1) -> (parseServiceConfig, 1) -> (generatePath, 0) -> (HasFired, 0) -> (healthCheckFunc, 4) -> (newHTTP2Client, 7) -> (ClientHandshake, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (getTrimmed, 1) -> (TrimSpace, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Watch, 1) -> (WatchFunc, 1) -> (blockQueue, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (DecodeResponse, 2) -> (NewDecoder, 1) -> (newParserFromReader, 1) -> (yaml_parser_set_input_reader, 2) -> (start, 0) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (SetTransportDefaults, 1) -> (Warningf, 2) -> (Printf, 2) -> (convertArgs, 1) -> (run, 3) -> (addConnLocked, 2) -> (newClientConn, 2) -> (readLoop, 0) -> (WriteGoAway, 3) -> (OnDelete, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (doRequest, 1) -> (cleanup, 0) -> (isEOFOrNetReadError, 1) -> (filterOutClientConn, 2) -> (handlePullRequestEvent, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (doRequest, 1) -> (cleanup, 0) -> (isEOFOrNetReadError, 1) -> (filterOutClientConn, 2) -> (newMultipartReader, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Has, 1) -> (WatchWithSpecificDecoders, 2) -> (NewStreamWatcher, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Close, 0) -> (handleErr, 1) -> (recover, 0) -> (newFamily, 0) -> (LazyPrintf, 2) -> (addEvent, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (doRequest, 1) -> (cleanup, 0) -> (isEOFOrNetReadError, 1) -> (filterOutClientConn, 2) -> (start, 0) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Decode, 2) -> (cap, 1) -> (Scan, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Add, 1) -> (Signal, 0) -> (Signal, 1) -> (evictOldest, 1)
(replace, 1) -> (Add, 2) -> (string, 1) -> (stringOff, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (getTrimmed, 1) -> (TrimSpace, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (poller, 2)
(replace, 1) -> (Add, 2) -> (updateIndices, 3) -> (Insert, 1) -> (Delete, 1) -> (PushFunc, 1) -> (dedupDeltas, 1) -> (isDup, 2) -> (LazyPrintf, 2) -> (addEvent, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2) -> (lbWatcher, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (watcher, 0) -> (NewServiceConfig, 1) -> (handleServiceConfig, 1) -> (parseServiceConfig, 1) -> (generatePath, 0) -> (HasFired, 0) -> (healthCheckFunc, 4) -> (newHTTP2Client, 7)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (getTrimmed, 1) -> (TrimSpace, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Add, 1) -> (Signal, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (New, 1) -> (HTTPWrappersForConfig, 2) -> (NewImpersonatingRoundTripper, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2) -> (lbWatcher, 0) -> (Notify, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Decode, 3) -> (ConvertToVersion, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Close, 0) -> (handleErr, 1) -> (recover, 0) -> (newFamily, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (SetTransportDefaults, 1) -> (Warningf, 2) -> (Printf, 2) -> (convertArgs, 1) -> (run, 3) -> (addConnLocked, 2) -> (newClientConn, 2) -> (readLoop, 0) -> (WriteGoAway, 3) -> (OnDelete, 1) -> (FilterFunc, 1) -> (shaForRefs, 2)
(replace, 1) -> (Add, 2) -> (getShard, 1) -> (uint64, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2)
(replace, 1) -> (Len, 0) -> (int, 1) -> (int64, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2) -> (handlePullRequestEvent, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (DecodeResponse, 2) -> (NewDecoder, 1) -> (newParserFromReader, 1) -> (yaml_parser_set_input_reader, 2) -> (start, 0) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2) -> (lbWatcher, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (watcher, 0) -> (NewServiceConfig, 1) -> (handleServiceConfig, 1) -> (parseServiceConfig, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (SetTransportDefaults, 1) -> (Warningf, 2) -> (Printf, 2) -> (convertArgs, 1) -> (run, 3) -> (addConnLocked, 2) -> (newClientConn, 2) -> (readLoop, 0) -> (WriteGoAway, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (SetTransportDefaults, 1) -> (Warningf, 2) -> (Printf, 2) -> (convertArgs, 1) -> (run, 3) -> (addConnLocked, 2) -> (newClientConn, 2) -> (readLoop, 0) -> (WriteGoAway, 3) -> (OnDelete, 1) -> (FilterFunc, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (SetOptions, 2) -> (Set, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1)
(replace, 1) -> (Len, 0) -> (int, 1) -> (int64, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2) -> (handlePullRequestEvent, 2) -> (handlePullRequest, 4)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (doRequest, 1) -> (cleanup, 0) -> (isEOFOrNetReadError, 1) -> (filterOutClientConn, 2) -> (start, 0) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2) -> (lbWatcher, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (getTrimmed, 1) -> (TrimSpace, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Start, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Has, 1) -> (Upload, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (DecodeResponse, 2) -> (NewDecoder, 1) -> (newParserFromReader, 1) -> (yaml_parser_set_input_reader, 2) -> (handlePullRequestEvent, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Has, 1)
(replace, 1) -> (Add, 2) -> (getShard, 1) -> (uint64, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2) -> (LazyPrintf, 2) -> (addEvent, 3)
(replace, 1) -> (Len, 0) -> (int, 1) -> (int64, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2) -> (start, 0) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (New, 2)
(replace, 1) -> (Add, 2) -> (getShard, 1) -> (uint64, 1) -> (Write, 1) -> (Encode, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (SetTransportDefaults, 1) -> (Warningf, 2) -> (Printf, 2)
(replace, 1) -> (Add, 2) -> (updateIndices, 3) -> (Insert, 1) -> (Delete, 1) -> (PushFunc, 1) -> (dedupDeltas, 1) -> (isDup, 2) -> (addEvent, 3)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (DecodeResponse, 2) -> (NewDecoder, 1) -> (newParserFromReader, 1) -> (yaml_parser_set_input_reader, 2) -> (start, 0) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Close, 0) -> (handleErr, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (doRequest, 1) -> (cleanup, 0) -> (isEOFOrNetReadError, 1) -> (filterOutClientConn, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Get, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (Has, 1) -> (Start, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Marshal, 1) -> (ValueOf, 1) -> (yaml_document_end_event_initialize, 2) -> (RegisterPushEventHandler, 3) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (, 0) -> (realJoke, 1) -> (init, 1) -> (checkIfTerminal, 1) -> (watcher, 0) -> (NewServiceConfig, 1) -> (handleServiceConfig, 1) -> (parseServiceConfig, 1) -> (generatePath, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Marshal, 1) -> (ValueOf, 1) -> (yaml_document_end_event_initialize, 2) -> (RegisterPushEventHandler, 3) -> (NewAddress, 1) -> (handleResolvedAddrs, 2) -> (newCCBalancerWrapper, 3) -> (Build, 2) -> (lbWatcher, 0)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (getTrimmed, 1) -> (TrimSpace, 1) -> (NewNotFound, 2) -> (Infof, 3) -> (propagateCancel, 2)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (doRequest, 1) -> (cleanup, 0) -> (isEOFOrNetReadError, 1) -> (filterOutClientConn, 2) -> (handlePullRequestEvent, 2) -> (handlePullRequest, 4)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Observe, 1) -> (cap, 1)
(replace, 1) -> (Len, 0) -> (Get, 0) -> (append, 2) -> (Infof, 2) -> (Printf, 2) -> (convertArgs, 1) -> (NewFormatter, 1)
(replace, 1) -> (Len, 0) -> (int, 1) -> (int64, 1) -> (Write, 1) -> (Encode, 2) -> (EncodeNestedObjects, 1) -> (bestMatch, 2) -> (LazyPrintf, 2) -> (addEvent, 3)
```
Leave a reaction on this issue to contribute to the project by classifying this instance as a **Bug** :-1:, **Mitigated** :+1:, or **Desirable Behavior** :rocket:
See the descriptions of the classifications [here](https://github.com/github-vet/rangeclosure-findings#how-can-i-help) for more information.
commit ID: b04e70ef12e9960a519367f66bef7985dc65b97e
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.