)]}'
{
  "commit": "986d754768ddec6e7985fdcc1f2a646089621097",
  "tree": "523cdba97df1e20252cb0b4de923847aba4a5c7e",
  "parents": [
    "0b080cfd8207887039c471e95e88931406bb6a4e"
  ],
  "author": {
    "name": "Wei Zhou",
    "email": "weizhou@apache.org",
    "time": "Wed Mar 06 08:25:00 2024 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Mar 06 08:25:00 2024 +0100"
  },
  "message": "SG: fix SQL exception when add security group rule with allowed account/group (#8616)\n\nThis fixes https://github.com/apache/cloudstack/issues/8595\r\n\r\n```\r\n2024-02-01 16:23:52,473 INFO  [c.c.n.s.SecurityGroupManagerImpl] (AgentManager-Handler-16:null) (logid:) Network Group full sync for agent 1 found 3 vms out of sync\r\n2024-02-01 16:23:52,473 DEBUG [c.c.n.s.SecurityGroupManagerImpl] (AgentManager-Handler-16:null) (logid:) Security Group Mgr v2: scheduling ruleset updates for 3 vms  (unique\u003d3), current queue size\u003d0\r\n2024-02-01 16:23:52,473 DEBUG [c.c.n.s.SecurityGroupManagerImpl] (AgentManager-Handler-16:null) (logid:) Security Group Mgr v2: done scheduling ruleset updates for 3 vms: num new jobs\u003d3 num rows insert or updated\u003d0 time taken\u003d0\r\n2024-02-01 16:23:52,478 ERROR [c.c.n.s.SecurityGroupManagerImpl] (SecGrp-Worker-20:ctx-0aa3885d) (logid:472b30d2) Problem during SG work com.cloud.network.security.LocalSecurityGroupWorkQueue$LocalSecurityGroupWork@5\r\ncom.cloud.utils.exception.CloudRuntimeException: DB Exception on: com.mysql.cj.jdbc.ClientPreparedStatement: SELECT SQL_CACHE security_group_vm_map.id, security_group_vm_map.security_group_id, security_group_vm_map.instance_id, nics.ip4_address, vm_instance.state, security_group.name FROM security_group_vm_map INNER JOIN nics ON security_group_vm_map.instance_id\u003dnics.instance_id  INNER JOIN vm_instance ON security_group_vm_map.instance_id\u003dvm_instance.id  INNER JOIN security_group ON security_group_vm_map.security_group_id\u003dsecurity_group.id  WHERE security_group_vm_map.security_group_id \u003d 3  AND vm_instance.state\u003d\u0027Running\u0027\r\n        at com.cloud.utils.db.GenericDaoBase.searchIncludingRemoved(GenericDaoBase.java:424)\r\n        at com.cloud.utils.db.GenericDaoBase.listIncludingRemovedBy(GenericDaoBase.java:938)\r\n        at com.cloud.utils.db.GenericDaoBase.listBy(GenericDaoBase.java:928)\r\n        at com.cloud.network.security.dao.SecurityGroupVMMapDaoImpl.listBySecurityGroup(SecurityGroupVMMapDaoImpl.java:134)\r\n        at jdk.internal.reflect.GeneratedMethodAccessor555.invoke(Unknown Source)\r\n        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n        at java.base/java.lang.reflect.Method.invoke(Method.java:566)\r\n        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)\r\n        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n        at com.cloud.utils.db.TransactionContextInterceptor.invoke(TransactionContextInterceptor.java:34)\r\n        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)\r\n        at com.sun.proxy.$Proxy245.listBySecurityGroup(Unknown Source)\r\n        at com.cloud.network.security.SecurityGroupManagerImpl2.generateRulesForVM(SecurityGroupManagerImpl2.java:246)\r\n        at com.cloud.network.security.SecurityGroupManagerImpl2.sendRulesetUpdates(SecurityGroupManagerImpl2.java:177)\r\n        at com.cloud.network.security.SecurityGroupManagerImpl2.work(SecurityGroupManagerImpl2.java:157)\r\n        at com.cloud.network.security.SecurityGroupManagerImpl2$WorkerThread$1.run(SecurityGroupManagerImpl2.java:75)\r\n        at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:55)\r\n        at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:102)\r\n        at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:52)\r\n        at com.cloud.network.security.SecurityGroupManagerImpl2$WorkerThread.run(SecurityGroupManagerImpl2.java:72)\r\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \u0027.id, security_group_vm_map.security_group_id, security_group_vm_map.instance_id,\u0027 at line 1\r\n        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\r\n        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)\r\n        at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n        ... 28 more\r\n```",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a2ec95ccb6792607ca2b266fb8c52ba3b620469a",
      "old_mode": 33188,
      "old_path": "engine/schema/src/main/java/com/cloud/network/security/dao/SecurityGroupVMMapDaoImpl.java",
      "new_id": "803955a562c134af23aa54f0f1d98ac66e7efbb6",
      "new_mode": 33188,
      "new_path": "engine/schema/src/main/java/com/cloud/network/security/dao/SecurityGroupVMMapDaoImpl.java"
    }
  ]
}
