Opened 8 years ago

Closed 7 years ago

Last modified 7 years ago

#1347 closed defect (fixed)

Rasql_Error when overlay with range constructor

Reported by: Bang Pham Huu Owned by:
Priority: major Milestone: 9.5
Component: rasql Version: development
Keywords: Cc: Dimitar Misev, Vlad Merticariu, bbell
Complexity: Medium

Description

This problem in Rasql is when use Rasql to query with range constructor and overlay. However, the single query without overlay can be run:

SELECT encode({ (  ( c >= 20 and c < 25 )  * 255 ) ,
                (  ( c >= 20 and c < 25 )  * 165 ) ,
                (  ( c >= 20 and c < 25 )  * 0 ) }, 
"PNG" , "nodata=0;xmin=0;ymin=0;xmax=255;ymax=210") FROM mr AS c

the query return error when use overlay

SELECT encode((char) ({( ( c >=20 and c < 25 ) * 255 ) ,
                       ( ( c >=20 and c < 25 ) * 165 ) , 
                       ( ( c >=20 and c < 25 ) * 0 )})
     overlay 
             (char)  ({( ( c < 20 ) * 200 ) , 
                       ( ( c < 20 ) * 10 ) , 
                       ( ( c < 20 ) * 10 )}),
"PNG" , "nodata=0;xmin=0;ymin=0;xmax=255;ymax=210") FROM mr AS c

with error

Executing retrieval query...rasdaman error 0: Internal server error.
aborting transaction...E0628 15:44:48.667793237    7776 
tcp_client_posix.c:171]     failed to connect to 'ipv4:10.70.11.237:7002': socket error: connection refused

E0628 15:44:49.668076733    7776 tcp_client_posix.c:171]     failed to 
connect to 'ipv4:10.70.11.237:7002': socket error: connection refused

Change History (3)

comment:1 by Bang Pham Huu, 7 years ago

Cc: bbell added
Milestone: 10.09.5

this one is important for WMS, so need to be fixed soon, even without cast, it killed rasservers

rasql -q 'SELECT encode( ({( ( c >=20 and c < 25 ) * 255 ) ,
                       ( ( c >=20 and c < 25 ) * 165 ) , 
                       ( ( c >=20 and c < 25 ) * 0 )})
     overlay 
             ({( ( c < 20 ) * 200 ) , 
                       ( ( c < 20 ) * 10 ) , 
                       ( ( c < 20 ) * 10 )}),
"PNG" , "nodata=0;xmin=0;ymin=0;xmax=255;ymax=210") FROM test_mr1 AS c' 
rasql: rasdaman query tool v1.0, rasdaman 9.4.0.
opening database RASBASE at localhost:7001...ok
Executing retrieval query...rasdaman error 0: Internal server error.
aborting transaction...E0629 11:47:51.762333050   17130 tcp_client_posix.c:171]     failed to connect to 'ipv4:10.70.11.236:7002': socket error: connection refused
E0629 11:47:52.763648916   17130 tcp_client_posix.c:171]     failed to connect to 'ipv4:10.70.11.236:7002': socket error: connection refused
^C

server's log

Segmentation fault caught, stacktrace:
 [INFO] - 29/06/2017 11:49:38.17550: [bt]: (1) /opt/rasdaman/bin/rasserver (??:0) - MDDBaseType::getBaseType() const+0xc [0xa1de94]
 [INFO] - 29/06/2017 11:49:38.22072: [bt]: (2) /opt/rasdaman/bin/rasserver (??:0) - QtBinaryInduce::checkType(QtTypeTuple*)+0x10c [0x8c7378]
 [INFO] - 29/06/2017 11:49:38.26107: [bt]: (3) /opt/rasdaman/bin/rasserver (??:0) - QtConversion::checkType(QtTypeTuple*)+0x77 [0x8eab85]
 [INFO] - 29/06/2017 11:49:38.31772: [bt]: (4) /opt/rasdaman/bin/rasserver (??:?) - QtOperationIterator::checkType()+0xc1 [0x90b923]
 [INFO] - 29/06/2017 11:49:38.35341: [bt]: (5) /opt/rasdaman/bin/rasserver (??:0) - QueryTree::checkSemantics()+0x7c [0x92e368]
 [INFO] - 29/06/2017 11:49:38.40772: [bt]: (6) /opt/rasdaman/bin/rasserver (??:?) - ServerComm::executeQuery(unsigned long, char const*, ExecuteQueryRes&)+0x515 [0x864c49]
 [INFO] - 29/06/2017 11:49:38.44143: [bt]: (7) /opt/rasdaman/bin/rasserver (??:0) - RasServerEntry::compat_executeQueryRpc(char const*, ExecuteQueryRes&)+0x54 [0x7d6b12]
 [INFO] - 29/06/2017 11:49:38.49306: [bt]: (8) /opt/rasdaman/bin/rasserver (??:?) - RasnetServerComm::ExecuteQuery(grpc::ServerContext*, rasnet::service::ExecuteQueryReq const*, rasnet::service::ExecuteQueryRepl*)+0xac [0xac47ba]
 [INFO] - 29/06/2017 11:49:38.52631: [bt]: (9) /opt/rasdaman/bin/rasserver (??:0) - grpc::Status std::_Mem_fn<grpc::Status (rasnet::service::ClientRassrvrService::Service::*)(grpc::ServerContext*, rasnet::service::ExecuteQueryReq const*, rasnet::service::ExecuteQueryRepl*)>::operator()<grpc::ServerContext*, rasnet::service::ExecuteQueryReq const*, rasnet::service::ExecuteQueryRepl*, void>(rasnet::service::ClientRassrvrService::Service*, grpc::ServerContext*&&, rasnet::service::ExecuteQueryReq const*&&, rasnet::service::ExecuteQueryRepl*&&) const+0xb2 [0xaf1f08]
 [INFO] - 29/06/2017 11:49:38.57646: [bt]: (10) /opt/rasdaman/bin/rasserver (??:?) - std::_Function_handler<grpc::Status (rasnet::service::ClientRassrvrService::Service*, grpc::ServerContext*, rasnet::service::ExecuteQueryReq const*, rasnet::service::ExecuteQueryRepl*), std::_Mem_fn<grpc::Status (rasnet::service::ClientRassrvrService::Service::*)(grpc::ServerContext*, rasnet::service::ExecuteQueryReq const*, rasnet::service::ExecuteQueryRepl*)> >::_M_invoke(std::_Any_data const&, rasnet::service::ClientRassrvrService::Service*, grpc::ServerContext*, rasnet::service::ExecuteQueryReq const*, rasnet::service::ExecuteQueryRepl*)+0x8a [0xaeb76c]
 [INFO] - 29/06/2017 11:49:38.60835: [bt]: (11) /opt/rasdaman/bin/rasserver (??:0) - std::function<grpc::Status (rasnet::service::ClientRassrvrService::Service*, grpc::ServerContext*, rasnet::service::ExecuteQueryReq const*, rasnet::service::ExecuteQueryRepl*)>::operator()(rasnet::service::ClientRassrvrService::Service*, grpc::ServerContext*, rasnet::service::ExecuteQueryReq const*, rasnet::service::ExecuteQueryRepl*) const+0x96 [0xb0d82e]
 [INFO] - 29/06/2017 11:49:38.65810: [bt]: (12) /opt/rasdaman/bin/rasserver (??:?) - grpc::RpcMethodHandler<rasnet::service::ClientRassrvrService::Service, rasnet::service::ExecuteQueryReq, rasnet::service::ExecuteQueryRepl>::RunHandler(grpc::MethodHandler::HandlerParameter const&)+0xb1 [0xb01ced]
 [INFO] - 29/06/2017 11:49:38.68985: [bt]: (13) /opt/rasdaman/bin/rasserver (??:0) - grpc::Server::RunRpc()+0x242 [0xb68782]
 [INFO] - 29/06/2017 11:49:38.74057: [bt]: (14) /opt/rasdaman/bin/rasserver (??:?) - grpc::DynamicThreadPool::ThreadFunc()+0xd2 [0xb70812]
 [INFO] - 29/06/2017 11:49:38.77187: [bt]: (15) /opt/rasdaman/bin/rasserver (??:0) - grpc::DynamicThreadPool::DynamicThread::ThreadFunc()+0x13 [0xb709e3]
 [INFO] - 29/06/2017 11:49:38.82225: [bt]: (16) /lib64/libstdc++.so.6 (??:?) - +0xb5230 [0x7f5672b8b230]
 [INFO] - 29/06/2017 11:49:38.85359: [bt]: (17) /lib64/libpthread.so.0 (??:0) - +0x7dc5 [0x7f5673405dc5]

comment:2 by bbell, 7 years ago

Resolution: fixed
Status: newclosed

comment:3 by bbell, 7 years ago

This problem was also addressed by the patch for ticket:1335, as both tickets were segfaulting due to a bug in the checkType() method of the class QtRangeConstructor.

Note: See TracTickets for help on using tickets.