Skip to content

Commit 6748dc4

Browse files
committed
Add L0_request_cancellation (#6252)
* Add L0_request_cancellation * Remove unittest test * Add cancellation to gRPC server error handling * Fix up * Use identity model
1 parent 7624490 commit 6748dc4

File tree

4 files changed

+103
-0
lines changed

4 files changed

+103
-0
lines changed

Dockerfile.QA

+1
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ RUN mkdir -p qa/common && \
139139
cp bin/data_compressor_test qa/L0_data_compression/. && \
140140
cp bin/metrics_api_test qa/L0_metrics/. && \
141141
cp bin/response_cache_test qa/L0_response_cache/. && \
142+
cp bin/request_cancellation_test qa/L0_request_cancellation/. && \
142143
cp bin/triton_json_test qa/L0_json/. && \
143144
cp bin/backend_output_detail_test qa/L0_backend_output_detail/. && \
144145
cp -r deploy/mlflow-triton-plugin qa/L0_mlflow/.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Copyright 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
#
3+
# Redistribution and use in source and binary forms, with or without
4+
# modification, are permitted provided that the following conditions
5+
# are met:
6+
# * Redistributions of source code must retain the above copyright
7+
# notice, this list of conditions and the following disclaimer.
8+
# * Redistributions in binary form must reproduce the above copyright
9+
# notice, this list of conditions and the following disclaimer in the
10+
# documentation and/or other materials provided with the distribution.
11+
# * Neither the name of NVIDIA CORPORATION nor the names of its
12+
# contributors may be used to endorse or promote products derived
13+
# from this software without specific prior written permission.
14+
#
15+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
16+
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
19+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22+
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23+
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26+
27+
backend: "identity"
28+
name: "model"
29+
max_batch_size: 64
30+
input {
31+
name: "INPUT0"
32+
data_type: TYPE_INT32
33+
dims: 1000
34+
}
35+
output {
36+
name: "OUTPUT0"
37+
data_type: TYPE_INT32
38+
dims: 1000
39+
}
40+
instance_group {
41+
kind: KIND_CPU
42+
}
43+

qa/L0_request_cancellation/test.sh

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/bin/bash
2+
# Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3+
#
4+
# Redistribution and use in source and binary forms, with or without
5+
# modification, are permitted provided that the following conditions
6+
# are met:
7+
# * Redistributions of source code must retain the above copyright
8+
# notice, this list of conditions and the following disclaimer.
9+
# * Redistributions in binary form must reproduce the above copyright
10+
# notice, this list of conditions and the following disclaimer in the
11+
# documentation and/or other materials provided with the distribution.
12+
# * Neither the name of NVIDIA CORPORATION nor the names of its
13+
# contributors may be used to endorse or promote products derived
14+
# from this software without specific prior written permission.
15+
#
16+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
17+
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23+
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24+
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27+
28+
REPO_VERSION=${NVIDIA_TRITON_SERVER_VERSION}
29+
if [ "$#" -ge 1 ]; then
30+
REPO_VERSION=$1
31+
fi
32+
if [ -z "$REPO_VERSION" ]; then
33+
echo -e "Repository version must be specified"
34+
echo -e "\n***\n*** Test Failed\n***"
35+
exit 1
36+
fi
37+
if [ ! -z "$TEST_REPO_ARCH" ]; then
38+
REPO_VERSION=${REPO_VERSION}_${TEST_REPO_ARCH}
39+
fi
40+
DATADIR=${DATADIR:="/data/inferenceserver/${REPO_VERSION}"}
41+
42+
RET=0
43+
44+
mkdir -p models/model/1
45+
46+
SERVER_LOG=server.log
47+
LD_LIBRARY_PATH=/opt/tritonserver/lib:$LD_LIBRARY_PATH ./request_cancellation_test > $SERVER_LOG
48+
if [ $? -ne 0 ]; then
49+
cat $SERVER_LOG
50+
RET=1
51+
fi
52+
53+
if [ $RET -eq 0 ]; then
54+
echo -e "\n***\n*** Test Passed\n***"
55+
else
56+
echo -e "\n***\n*** Test FAILED\n***"
57+
fi

src/grpc/grpc_utils.cc

+2
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ GrpcStatusUtil::CodeToStatus(TRITONSERVER_Error_Code code)
6060
return ::grpc::StatusCode::UNIMPLEMENTED;
6161
case TRITONSERVER_ERROR_ALREADY_EXISTS:
6262
return ::grpc::StatusCode::ALREADY_EXISTS;
63+
case TRITONSERVER_ERROR_CANCELLED:
64+
return ::grpc::StatusCode::CANCELLED;
6365
}
6466

6567
return ::grpc::StatusCode::UNKNOWN;

0 commit comments

Comments
 (0)