Skip to content

bulk_search API returns incomplete / partial data using Chunked Transfer Encoding #2120

@fviernau

Description

@fviernau

Scenario

Neither with curl, nor with reqests lib (Python) nor with OkHttp (Kotlin) it is possible
to get the complete data of the response, for package: pkg:maven/com.google.guava/guava@19.0.
It seems that the server attempts to use Chunked transfer encoding.

It reproduces for both, API v1 + v2.

Note: There are other packages, for which the problem does not happen.

Reproduce with curl

curl 'https://public.vulnerablecode.io/api/packages/bulk_search' \
  -H 'Content-Type: application/json; charset=utf-8' \
  --data '{"purls":["pkg:maven/com.google.guava/guava@19.0"]}'

gives

curl: (18) transfer closed with 64255 bytes remaining to read

Reproduce with Python

import requests

url = 'https://public.vulnerablecode.io/api/packages/bulk_search'
myobj = { 
  "purls": [
    "pkg:maven/com.google.guava/guava@19.0"
    ]
}

x = requests.post(url, json = myobj, stream=False)

print(x.text)

gives:

requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(97975 bytes read, 64255 more expected)', IncompleteRead(97975 bytes read, 64255 more expected))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions