[
https://issues.apache.org/jira/browse/TRAFODION-2197?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roberta Marton closed TRAFODION-2197.
-------------------------------------
Resolution: Fixed
Fix delivered
> column privilege -- mxosrvr crashed when granting multiple column privileges
> to a user
> --------------------------------------------------------------------------------------
>
> Key: TRAFODION-2197
> URL: https://issues.apache.org/jira/browse/TRAFODION-2197
> Project: Apache Trafodion
> Issue Type: Bug
> Components: sql-security
> Environment: centos6.7
> EsgynDB R2.2 0825 daily
> Reporter: Gao, Rui-Xian
> Assignee: Roberta Marton
>
> mxosrvr crashed when granting multiple column privileges to a user.
> SQL>grant select,insert(a),update,references(a) on atab1 to role1;
> *** ERROR[29157] Server aborted abnormally or Connection timed out
> *** ERROR[29160] The message header was not long enough
> *** ERROR[29157] Server aborted abnormally or Connection timed out
> *** ERROR[29160] The message header was not long enough
> mxosrvr core stack trace -
> #0 0x00007f59ceb34625 in raise () from /lib64/libc.so.6
> #1 0x00007f59ceb35d8d in abort () from /lib64/libc.so.6
> #2 0x00007f59d03901c5 in os::abort(bool) ()
> from /usr/java/jdk1.8.0_101/jre/lib/amd64/server/libjvm.so
> #3 0x00007f59d0531313 in VMError::report_and_die() ()
> from /usr/java/jdk1.8.0_101/jre/lib/amd64/server/libjvm.so
> #4 0x00007f59d03959ef in JVM_handle_linux_signal ()
> from /usr/java/jdk1.8.0_101/jre/lib/amd64/server/libjvm.so
> #5 0x00007f59d038c183 in signalHandler(int, siginfo*, void*) ()
> from /usr/java/jdk1.8.0_101/jre/lib/amd64/server/libjvm.so
> #6 <signal handler called>
> #7 0x00007f59c941c11d in PrivMgrPrivileges::hasColumnWGO (this=<value
> optimized out>,
> colPrivsArrayIn=std::vector of length 2, capacity 2 = {...},
> roleIDs=std::vector of length 0, capacity 0, privStatus=@0x7f59bb80af44)
> at ../sqlcomp/PrivMgrPrivileges.cpp:5766
> #8 0x00007f59c942a5f7 in PrivMgrPrivileges::grantColumnPrivileges
> (this=0x7f59bb80b520,
> objectType=COM_BASE_TABLE_OBJECT, granteeID=1000033, granteeName="ROLE1",
> grantorName=
> "TESTUSER1", colPrivsArrayIn=<value optimized out>, isWGOSpecified=false)
> at ../sqlcomp/PrivMgrPrivileges.cpp:1064
> #9 0x00007f59c942c099 in PrivMgrPrivileges::grantObjectPriv
> (this=0x7f59bb80b520,
> objectType=COM_BASE_TABLE_OBJECT, granteeID=1000033, granteeName="ROLE1",
> grantorName=
> "TESTUSER1", privsList=std::vector of length 2, capacity 2 = {...},
> colPrivsArray=std::vector of length 2, capacity 2 = {...},
> isAllSpecified=false,
> isWGOSpecified=false) at ../sqlcomp/PrivMgrPrivileges.cpp:1385
> #10 0x00007f59c93f6593 in PrivMgrCommands::grantObjectPrivilege
> (this=0x7f59bb80caa0,
> objectUID=<value optimized out>, objectName=<value optimized out>,
> objectType=COM_BASE_TABLE_OBJECT, granteeUID=1000033,
> granteeName="ROLE1", grantorUID=33464,
> grantorName="TESTUSER1", privsList=std::vector of length 2, capacity 2 =
> {...},
> colPrivsArray=std::vector of length 2, capacity 2 = {...},
> isAllSpecified=false,
> ---Type <return> to continue, or q <return> to quit---
> isWGOSpecified=false) at ../sqlcomp/PrivMgrCommands.cpp:695
> #11 0x00007f59c93a4ee1 in CmpSeabaseDDL::seabaseGrantRevoke
> (this=0x7f59bb80e910,
> stmtDDLNode=<value optimized out>, isGrant=1, currCatName=...,
> currSchName=...,
> useHBase=-1149188864) at ../sqlcomp/CmpSeabaseDDLtable.cpp:9827
> #12 0x00007f59c9352815 in CmpSeabaseDDL::executeSeabaseDDL
> (this=0x7f59bb80e910, ddlExpr=
> 0x7f595d8d56d0, ddlNode=0x7f595d8e54d0, currCatName=..., currSchName=...,
> dws=0x0)
> at ../sqlcomp/CmpSeabaseDDLcommon.cpp:9599
> #13 0x00007f59c6e5b6d0 in CmpStatement::process (this=<value optimized out>,
> statement=<value optimized out>) at ../arkcmp/CmpStatement.cpp:922
> #14 0x00007f59c6e49287 in CmpContext::compileDirect (this=0x7f59b97a2090,
> data=0x7f59ba3a0ee8 "\200",
> data_len=208, outHeap=0x7f59badab128, charset=15,
> op=CmpMessageObj::PROCESSDDL,
> gen_code=@0x7f59bb80f320, gen_code_len=@0x7f59bb80f32c,
> parserFlags=4194304,
> parentQid=0x7f59ba3a0d38
> "MXID11001022989212339303242622660000000000206U3346400_373_SQL_CUR_5",
> parentQidLen=67, diagsArea=0x7f59ba3a0fc0) at ../arkcmp/CmpContext.cpp:877
> #15 0x00007f59ccad4374 in ExDDLTcb::work (this=0x7f59ba33b918) at
> ../executor/ex_ddl.cpp:281
> #16 0x00007f59ccc49663 in ExScheduler::work (this=0x7f59ba33b480,
> prevWaitTime=<value optimized out>)
> at ../executor/ExScheduler.cpp:331
> #17 0x00007f59ccb402d2 in ex_root_tcb::execute (this=0x7f59ba33c890,
> cliGlobals=0x17fce80, glob=
> 0x7f59ba3a08b0, input_desc=0x7f59ba329948, diagsArea=@0x7f59bb810a50,
> reExecute=0)
> at ../executor/ex_root.cpp:1057
> #18 0x00007f59ce258b64 in CliStatement::execute (this=0x7f59ba347040,
> cliGlobals=0x17fce80,
> input_desc=0x7f59ba329948, diagsArea=<value optimized out>,
> execute_state=<value optimized out>,
> fixupOnly=0, cliflags=0) at ../cli/Statement.cpp:4534
> #19 0x00007f59ce1f1e7c in SQLCLI_PerformTasks(CliGlobals *, ULng32,
> SQLSTMT_ID *, SQLDESC_ID *, SQLDESC_ID *, Lng32, Lng32, typedef __va_list_tag
> __va_list_tag *, SQLCLI_PTR_PAIRS *, SQLCLI_PTR_PAIRS *) (
> cliGlobals=0x17fce80, tasks=8063, statement_id=0x39f4eb8,
> input_descriptor=0x39f4ee8,
> output_descriptor=0x0, num_input_ptr_pairs=0, num_output_ptr_pairs=0,
> ap=0x7f59bb810bf0,
> input_ptr_pairs=0x0, output_ptr_pairs=0x0) at ../cli/Cli.cpp:3301
> #20 0x00007f59ce261f0b in SQL_EXEC_ClearExecFetchClose
> (statement_id=0x39f4eb8,
> ---Type <return> to continue, or q <return> to quit---
> input_descriptor=0x39f4ee8, output_descriptor=0x0, num_input_ptr_pairs=0,
> num_output_ptr_pairs=0,
> num_total_ptr_pairs=0) at ../cli/CliExtern.cpp:2641
> #21 0x00007f59d12d6d8f in SRVR::WSQL_EXEC_ClearExecFetchClose
> (statement_id=0x39f4eb8,
> input_descriptor=<value optimized out>, output_descriptor=<value
> optimized out>,
> num_input_ptr_pairs=<value optimized out>, num_output_ptr_pairs=<value
> optimized out>,
> num_total_ptr_pairs=<value optimized out>) at SQLWrapper.cpp:462
> #22 0x00007f59d12cd67f in SRVR::EXECUTE2 (pSrvrStmt=0x39f48a0) at
> sqlinterface.cpp:5712
> #23 0x00007f59d12fe7ae in odbc_SQLSvc_Execute2_sme_ (objtag_=<value optimized
> out>,
> call_id_=<value optimized out>, dialogueId=<value optimized out>,
> sqlAsyncEnable=<value optimized out>, queryTimeout=<value optimized out>,
> inputRowCnt=<value optimized out>, sqlStmtType=64, stmtHandle=60770464,
> cursorLength=0,
> cursorName=0x0, cursorCharset=1, holdableCursor=0, inValuesLength=0,
> inValues=0x0,
> returnCode=0x7f59bb8114e8, sqlWarningOrErrorLength=0x7f59bb8114e4,
> sqlWarningOrError=@0x7f59bb8114c0, rowsAffected=0x7f59bb8114e0,
> outValuesLength=0x7f59bb8114d4,
> outValues=@0x7f59bb8114b8) at srvrothers.cpp:1533
> #24 0x00000000004c82c4 in odbc_SQLSrvr_ExecDirect_ame_ (objtag_=0x17ed4a0,
> call_id_=0x17ed4f8,
> dialogueId=676577088, stmtLabel=<value optimized out>, cursorName=0x0,
> stmtExplainLabel=<value optimized out>, stmtType=0, sqlStmtType=64,
> sqlString=0x17fb064 "grant select,insert(a),update,references(a) on atab1
> to role1",
> sqlAsyncEnable=0, queryTimeout=0, inputRowCnt=0, txnID=0,
> holdableCursor=0)
> at SrvrConnect.cpp:8304
> #25 0x0000000000495d06 in SQLEXECUTE_IOMessage (objtag_=0x17ed4a0,
> call_id_=0x17ed4f8,
> operation_id=3012) at Interface/odbcs_srvr.cpp:1731
> #26 0x0000000000495db4 in DISPATCH_TCPIPRequest (objtag_=0x17ed4a0,
> call_id_=0x17ed4f8,
> operation_id=<value optimized out>) at Interface/odbcs_srvr.cpp:1796
> #27 0x00000000004349b2 in BUILD_TCPIP_REQUEST (pnode=0x17ed4a0) at
> ../Common/TCPIPSystemSrvr.cpp:606
> #28 0x000000000043534d in PROCESS_TCPIP_REQUEST (pnode=0x17ed4a0) at
> ../Common/TCPIPSystemSrvr.cpp:584
> #29 0x0000000000463626 in CNSKListenerSrvr::tcpip_listener (arg=0x16a21e0)
> at Interface/linux/Listener_srvr_ps.cpp:401
> ---Type <return> to continue, or q <return> to quit---
> #30 0x00007f59ce8e6e20 in sb_thread_sthr_disp (pp_arg=0x17c8400) at
> threadl.cpp:256
> #31 0x00007f59ce4afa51 in start_thread () from /lib64/libpthread.so.0
> #32 0x00007f59cebea93d in clone () from /lib64/libc.so.6
> Steps to reproduce --
> create role role1;
> create schema mysch;
> set schema mysch;
> create table atab1(a int not null primary key, b int, c varchar(10));
> grant select,insert ,delete, update ,references(a) on atab1 to testuser1 with
> grant option;
> connect as testuser --
> Set schema mysch;
> grant select,insert(a),update,references(a) on atab1 to role1;
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)