RESTPP crash on one node due to auth token with length 1,2, or 3 characters

Symptoms

RESTPP crashes on one node in the cluster

Error Messages

HTTP response 502:

<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>

RESTPP log:

terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::substr
E0630 09:27:00.141721 116763 glogging.cpp:132] ============ Crashed with stacktrace ============
  0# FailureSignalHandler at /home/graphsql/product/src/engine/utility/gutil/glogging.cpp:132
1# 0x00007FCA8FE49630 in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld1/libpthread.so.0
2# 0x00007FCA8E4DD387 in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld1/libc.so.6
3# 0x00007FCA8E4DEA78 in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld1/libc.so.6
4# 0x00007FCA8EDED9D5 in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld2/libstdc++.so.6
5# 0x00007FCA8EDEB946 in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld2/libstdc++.so.6
6# 0x00007FCA8EDEB973 in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld2/libstdc++.so.6
7# 0x00007FCA8EDEBB9F in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld2/libstdc++.so.6
8# 0x00007FCA8EE40597 in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld2/libstdc++.so.6
9# restpp::AuthManager::ValidateToken(std::string const&, std::string const&, bool, bool, std::vector<std::string, std::allocator<std::string> > const&, long const&, std::string&, std::string&) at /home/graphsql/product/src/engine/realtime/restpp/worker/auth.cpp:56
10# restpp::Handler::RequestHandler() at /home/graphsql/product/src/engine/realtime/restpp/worker/handler.cpp:412
11# 0x000000000196DC99 in /home/tigergraph/tigergraph/app/3.5.3/bin/tg_dbs_restd
12# 0x00007FCA8FE41EA5 in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld1/libpthread.so.0
13# 0x00007FCA8E5A5B0D in /home/tigergraph/tigergraph/app/3.5.3/.syspre/usr/lib_ld1/libc.so.6

Diagnosis

A bug in the token validation logic leads to RESTPP crashing with auth tokens provided via RESTPP authorization.

Workaround

RESTPP can be started immediately after this is encountered via "gadmin start restpp"

Resolution

Upgrade to a version that is not affected.