Eric Yang created RANGER-1521:
---------------------------------
Summary: Ranger database script for mysql requires admin
privileges for replicated database
Key: RANGER-1521
URL: https://issues.apache.org/jira/browse/RANGER-1521
Project: Ranger
Issue Type: Bug
Components: admin
Affects Versions: 0.6.2
Reporter: Eric Yang
When running install or upgrade on replicated MySQL or MariaDB, ranger
installation might fail with:
{code}
Error executing: CREATE FUNCTION `getTempPolicyCount`(assetId bigint, resId
bigint) RETURNS int(11) BEGIN DECLARE tempPolicyCount int default 1; DECLARE
dbResourceId bigint; DECLARE exitLoop int DEFAULT FALSE; DECLARE policyList
CURSOR FOR SELECT id from x_resource where asset_id = assetId; DECLARE CONTINUE
HANDLER FOR NOT FOUND SET exitLoop = true; OPEN policyList; readPolicy : LOOP
FETCH policyList into dbResourceId; IF exitLoop THEN set tempPolicyCount =
tempPolicyCount + 1; LEAVE readPolicy; END IF; IF (resId = dbResourceId) THEN
LEAVE readPolicy; END IF; set tempPolicyCount = tempPolicyCount + 1; END LOOP;
CLOSE policyList; RETURN tempPolicyCount; END java.sql.SQLException: This
function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its
declaration and binary logging is enabled (you *might* want to use the less
safe log_bin_trust_function_creators variable) SQLException : SQL state: HY000
java.sql.SQLException: This function has none of DETERMINISTIC, NO SQL, or
READS SQL DATA in its declaration and binary logging is enabled (you *might*
want to use the less safe log_bin_trust_function_creators variable) ErrorCode:
1418 2017-04-05 22:59:00,345 [JISQL]
/usr/jdk64/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/bin/java -cp
/usr/iop/current/ranger-admin/ews/lib/mysql-connector-java.jar:/usr/iop/current/ranger-admin/jisql/lib/*
org.apache.util.sql.Jisql -driver mysqlconj -cstring
jdbc:mysql://tmh21-3-dal10-bi-mn000.fyre.ibm.com/ranger -u 'ranger' -p
'********' -noheader -trim -c \; -query "delete from x_db_version_h where
version='007' and active='N' and
updated_by='tmh21-3-dal10-bi-mn004.fyre.ibm.com';" 2017-04-05 22:59:00,781 [E]
007-updateBlankPolicyName.sql import failed!
{code}
Two files under ranger-admin/db/mysql/patches:
007-updateBlankPolicyName.sql and 008-removeTrailingSlash.sql are using rand()
functions to generate transaction ID, which makes them non-deterministic
functions and are causing failures on replicated MySQL database.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)