-
Notifications
You must be signed in to change notification settings - Fork 245
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
SQL: Connector sends out 50 contract offers max. #1515
Comments
Verified with current upstream
Since your bug description is rather sparse, I can only speculate as to how data was retrieved, what endpoints were called and with what parameters, so the only idea that comes to mind is that most Data Management API calls by default have a page size of 50, unless specified otherwise. |
Thanks for trying this out. From your description I'd assume that you did not use a control plane with SQL storage? |
I did. |
This comment was marked as abuse.
This comment was marked as abuse.
Obviously, that is not what I was referring to. I was referring to the exact call how the catalog request was made. |
There are not that many ways to request a catalog. But here you go curl -G -X GET ${connectorUrl}/data/catalog -H "X-Api-Key: password" --data-urlencode "providerUrl=${targetConnectorUrl}/api/v1/ids/data" --header "Content-Type: application/json" -s |
This issue seems to be located in the |
@ndr-brt you're right. The quick fix would be to change the SQL query to not use LIMIT and OFFSET. Eventually IDS requests will all be pageable, but the above mentioned mitigation would be an easy win. However, we might still run into I/O errors when assembling the response takes too long, or the body size is too large:
[edit]: the reason it worked for me previously is that due to a typo in my build file the in-memory contract def store was indeed used. |
I am using the in-memory stores and experience the same behaviour. Could be that there is also a limit in the database queries, but i think it is more a think related to the API. The "catalog" call is not able to use pagination right now like all the other endpoints. @ndr-brt @paullatzelsperger Could it be that |
@domreuter don't think so. this was specific to the SQL implementation. InMemory really is just a map, not an in-mem database (such as Derby or H2). In order to have "real" pagination for the |
Ok, but is there a reason why the catalog call is not following the query parameters? I experienced exactly the same problems you described earlier. Timeouts and an increasing size of the response body will cause some problems if we talk about a realistic amount of contract offer. Therefore we have a problem with the IDS-calls which are not supporting pagination on the one side Connector <-> Connector and the catalog api on the other side Connector Data-Management API <-> e.g. EDC Managing Application. Same problem different locations, at least from the api perspective that should not be a big deal. Put that here as it is somehow related, but maybe worth a separate discussion? |
@domreuter my point exactly. All the We have that issue on our roadmap and will probably work on it in Milestone 6. |
Bug Report
Describe the Bug
When a connector requests a catalog from another connector, it only gets the first 50 contract offers, even if the connector would be able to send out a lot more offers.
Expected Behavior
Observed Behavior
Steps to Reproduce
Steps to reproduce the behavior:
-> catalog contains only 50 offers
Context Information
Detailed Description
Possible Implementation
Dominik Pinsel [email protected], Mercedes-Benz Tech Innovation GmbH, legal info/Impressum
The text was updated successfully, but these errors were encountered: