Skip to content

Handle server exception on wrong type in request #6452

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

Merged
merged 1 commit into from
Apr 3, 2024

Conversation

JH23X
Copy link
Contributor

@JH23X JH23X commented Apr 3, 2024

Currently the http server shuts down when an argument is supplied as a wrong type in the request json. For example,
{"prompt": "Building a website can be done in 10 simple steps:","n_predict": 128, "stream": "false"}' (notice the "false" that is supplied as a string)
will cause the following exception on the server:

terminate called after throwing an instance of 'nlohmann::json_abi_v3_11_3::detail::type_error' {"tid": ...}
what(): [json.exception.type_error.302] type must be boolean, but is string
Aborted

The server shouldn't shut down from a malformed request. The proposed change catches this exception and logs a warning instead:
{"tid": ... ,"level":"WARN","function":"json_value","line":64,msg:"Wrong type supplied for parameter 'stream'. Expected 'b', using default value.","prompt":"Building a website can be done in 10 simple steps:","n_predict": 128,"stream":"false"}

Not 100% sure if this is the right way to go about this, so feel free to let me know of any changes you would like to see!

This comment was marked as off-topic.

Copy link
Collaborator

@phymbert phymbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, please wait for @ngxson review

@phymbert phymbert requested a review from ggerganov April 3, 2024 14:07
@ggerganov ggerganov merged commit 60cdf40 into ggml-org:master Apr 3, 2024
}
catch (nlohmann::json_abi_v3_11_3::detail::type_error const&){
std::string message = "Wrong type supplied for parameter '" + key + "'. Expected '" + typeid(default_value).name() + "', using default value.";
server_log("WARN", __func__, __LINE__, message.c_str(), body);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can simply use LOG_WARNING here instead of calling directly server_log. But it's just a small detail, not important.

tybalex pushed a commit to rubra-ai/tools.cpp that referenced this pull request Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants