[ https://issues.apache.org/jira/browse/RANGER-5003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17934467#comment-17934467 ]
wangzhongwei commented on RANGER-5003: -------------------------------------- ping [~madhan] > Fix the bug that deleting a service fails with gtid enabled mysql server > ------------------------------------------------------------------------- > > Key: RANGER-5003 > URL: https://issues.apache.org/jira/browse/RANGER-5003 > Project: Ranger > Issue Type: Bug > Components: admin > Affects Versions: 2.2.0 > Reporter: wangzhongwei > Assignee: wangzhongwei > Priority: Major > Attachments: RANGER-5003.patch, image-2024-11-20-11-37-32-722.png > > > When I tried to delete a service, I encountered the following error, and the > deletion failed. > logs are: > {code:java} > 2024-11-11 10:29:12,463 | INFO | org.apache.ranger.common.RESTErrorUtil | > Operation error. > response=VXResponse={org.apache.ranger.view.VXResponse@15d84707statusCode={1} > msgDesc={Exception [EclipseLink-4002] (Eclipse Persistence Services - > 2.5.2.v20140319-9ad6abd): > org.eclipse.persistence.exceptions.DatabaseExceptionInternal Exception: > java.sql.SQLSyntaxErrorException: Table 'ranger.tl_x_rms_resource_mapping' > doesn't existError Code: 1146Call: INSERT INTO TL_x_rms_resource_mapping (id) > SELECT t0.id FROM x_rms_resource_mapping t0 WHERE (t0.hl_resource_id IN > (SELECT t1.id FROM x_rms_service_resource t1 WHERE (t1.service_id = ?)) OR > t0.ll_resource_id IN (SELECT t2.id FROM x_rms_service_resource t2 WHERE > (t2.service_id = ?))) bind => [2 parameters bound]Query: > DeleteAllQuery(name="XXRMSResourceMapping.deleteByServiceId" > referenceClass=XXRMSResourceMapping sql="DELETE FROM > TL_x_rms_resource_mapping")} messageList={null} > }javax.ws.rs.WebApplicationException at > org.apache.ranger.common.RESTErrorUtil.createRESTException(RESTErrorUtil.java:56) > at > org.apache.ranger.common.RESTErrorUtil.createRESTException(RESTErrorUtil.java:311) > at > org.apache.ranger.rest.ServiceREST.deleteServiceById(ServiceREST.java:4340) > at org.apache.ranger.rest.ServiceREST.deleteService(ServiceREST.java:868) > at > org.apache.ranger.rest.ServiceREST$$FastClassBySpringCGLIB$$92dab672.invoke(<generated>) > at > org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) > at > org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) > at > org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) > {code} > > > Conditions for reproducing the bug: > MySQL configuration is as follows: > 1.gtid be set to ON > enforce_gtid_consistency = ON > gtid_mode = ON > 2.enable binlog,like configs in /etc/my.conf > log-bin=mysql-bin > server-id=1 > binlog-format=row > 3.version :5.6 <= mysql.version <8.0.13 > > Failed reason: > mysql version <8.0.13 does not support temporary tables in GTID > transactions,while the NamedQuery XXRMSResourceMapping.deleteByServiceId : > {code:java} > DELETE FROM XXRMSResourceMapping mapping WHERE mapping.hlResourceId in > (select obj.id from XXRMSServiceResource obj where obj.serviceId = > :serviceId) OR > mapping.llResourceId in (select obj.id from XXRMSServiceResource obj where > obj.serviceId = :serviceId) {code} > will genatate temporary table. -- This message was sent by Atlassian Jira (v8.20.10#820010)