swarm/network: measure time of messages in priority queue (#19250)
This commit is contained in:
committed by
GitHub
parent
c53c5e616f
commit
baded64d88
@ -39,6 +39,11 @@ import (
|
||||
)
|
||||
|
||||
func uploadAndSyncCmd(ctx *cli.Context, tuid string) error {
|
||||
// use input seed if it has been set
|
||||
if inputSeed != 0 {
|
||||
seed = inputSeed
|
||||
}
|
||||
|
||||
randomBytes := testutil.RandomBytes(seed, filesize*1000)
|
||||
|
||||
errc := make(chan error)
|
||||
@ -47,37 +52,28 @@ func uploadAndSyncCmd(ctx *cli.Context, tuid string) error {
|
||||
errc <- uploadAndSync(ctx, randomBytes, tuid)
|
||||
}()
|
||||
|
||||
var err error
|
||||
select {
|
||||
case err := <-errc:
|
||||
case err = <-errc:
|
||||
if err != nil {
|
||||
metrics.GetOrRegisterCounter(fmt.Sprintf("%s.fail", commandName), nil).Inc(1)
|
||||
}
|
||||
return err
|
||||
case <-time.After(time.Duration(timeout) * time.Second):
|
||||
metrics.GetOrRegisterCounter(fmt.Sprintf("%s.timeout", commandName), nil).Inc(1)
|
||||
|
||||
e := fmt.Errorf("timeout after %v sec", timeout)
|
||||
// trigger debug functionality on randomBytes
|
||||
err := trackChunks(randomBytes[:])
|
||||
if err != nil {
|
||||
e = fmt.Errorf("%v; triggerChunkDebug failed: %v", e, err)
|
||||
}
|
||||
|
||||
return e
|
||||
err = fmt.Errorf("timeout after %v sec", timeout)
|
||||
}
|
||||
|
||||
// trigger debug functionality on randomBytes even on successful runs
|
||||
err := trackChunks(randomBytes[:])
|
||||
if err != nil {
|
||||
log.Error(err.Error())
|
||||
// trigger debug functionality on randomBytes
|
||||
e := trackChunks(randomBytes[:])
|
||||
if e != nil {
|
||||
log.Error(e.Error())
|
||||
}
|
||||
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
func trackChunks(testData []byte) error {
|
||||
log.Warn("Test timed out, running chunk debug sequence")
|
||||
|
||||
addrs, err := getAllRefs(testData)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -94,14 +90,14 @@ func trackChunks(testData []byte) error {
|
||||
|
||||
rpcClient, err := rpc.Dial(httpHost)
|
||||
if err != nil {
|
||||
log.Error("Error dialing host", "err", err)
|
||||
log.Error("error dialing host", "err", err, "host", httpHost)
|
||||
continue
|
||||
}
|
||||
|
||||
var hasInfo []api.HasInfo
|
||||
err = rpcClient.Call(&hasInfo, "bzz_has", addrs)
|
||||
if err != nil {
|
||||
log.Error("Error calling host", "err", err)
|
||||
log.Error("error calling rpc client", "err", err, "host", httpHost)
|
||||
continue
|
||||
}
|
||||
|
||||
@ -125,7 +121,6 @@ func trackChunks(testData []byte) error {
|
||||
}
|
||||
|
||||
func getAllRefs(testData []byte) (storage.AddressCollection, error) {
|
||||
log.Trace("Getting all references for given root hash")
|
||||
datadir, err := ioutil.TempDir("", "chunk-debug")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to create temp dir: %v", err)
|
||||
|
Reference in New Issue
Block a user