Skip to content

No active timeout mechanism #707

@JeyJeyGao

Description

@JeyJeyGao

What is the areas you experience the issue in?

Notation CLI

What is not working as expected?

If server starts the TCP connection with client and doesn't reponse the HTTP request, the Notation CLI will keep waiting.

$ notation sign localhost:5003/hello:v1
INFO[2023-06-05T15:01:57+08:00] Using the referrers tag schema               
DEBU[2023-06-05T15:01:57+08:00] > Request: "HEAD" "http://localhost:5003/v2/hello/manifests/v1" 
DEBU[2023-06-05T15:01:57+08:00] > Request headers:                           
DEBU[2023-06-05T15:01:57+08:00]    "Accept": "application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, application/vnd.oci.artifact.manifest.v1+json" 
DEBU[2023-06-05T15:01:57+08:00]    "User-Agent": "notation/v1.0.0-rc.7"      
^C

What did you expect to happen?

Notation may need a timeout mechanism to actively failed the request.

How can we reproduce it?

Write a simple python script to emulate a timeout server:

from flask import Flask, request
import time

app = Flask(__name__)

@app.route('/', defaults={'path': ''}, methods=['GET', 'POST', 'PUT', 'DELETE'])
@app.route('/<path:path>', methods=['GET', 'POST', 'PUT', 'DELETE'])
def delay_response(path):
    while True:
        time.sleep(1)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5003)

start the server, and run

$ notation sign localhost:5003/hello:v1

Describe your environment

Linux x64

What is the version of your Notation CLI or Notation Library?

Notation CLI RC7

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

Status

Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions