This is what I did using the UI: added a guest network in my advance zone, added a guest to the network, opened up a firewall on the network added a port forwarding rule, specifying my guest
And this seemed to work. Database updated as expected. Log messages seemed ok too. THEN! using the UI, I trieddeleting the port forwarding rule I just created. ....Internal Server error. Pertinent log messages: 2013-10-22 08:14:14,087 DEBUG [cloud.api.ApiServlet] (catalina-exec-9:null) ===START=== 192.168.220.1 -- GET command=deletePortForwardingRule&response=json&sessionkey=YwEeHOyxyQa9chYMY4VtUbIQPe8%3D&id=2cbaa440-c4b1-4472-a27b-28c71f7c1dcf&_=1382444054170 2013-10-22 08:14:14,147 DEBUG [cloud.async.AsyncJobManagerImpl] (catalina-exec-9:null) submit async job-39, details: AsyncJobVO {id:39, userId: 2, accountId: 2, sessionKey: null, instanceType: FirewallRule, instanceId: null, cmd: org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd, cmdOriginator: null, cmdInfo: {"response":"json","id":"2cbaa440-c4b1-4472-a27b-28c71f7c1dcf","sessionkey":"YwEeHOyxyQa9chYMY4VtUbIQPe8\u003d","ctxUserId":"2","_":"1382444054170","ctxAccountId":"2","ctxStartEventId":"178"}, cmdVersion: 0, callbackType: 0, callbackAddress: null, status: 0, processStatus: 0, resultCode: 0, result: null, initMsid: 345052229336, completeMsid: null, lastUpdated: null, lastPolled: null, created: null} 2013-10-22 08:14:14,153 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-44:job-39) Executing org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd for job-39 2013-10-22 08:14:14,155 DEBUG [cloud.api.ApiServlet] (catalina-exec-9:null) ===END=== 192.168.220.1 -- GET command=deletePortForwardingRule&response=json&sessionkey=YwEeHOyxyQa9chYMY4VtUbIQPe8%3D&id=2cbaa440-c4b1-4472-a27b-28c71f7c1dcf&_=1382444054170 2013-10-22 08:14:14,172 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-44:job-39) Sync job-39 execution on object network.212 2013-10-22 08:14:14,185 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-44:job-39) job org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd for job-39 was queued, processing the queue. 2013-10-22 08:14:14,200 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-44:job-39) Executing sync queue item: SyncQueueItemVO {id:18, queueId: 19, contentType: AsyncJob, contentId: 39, lastProcessMsid: 345052229336, lastprocessNumber: 5, lastProcessTime: Tue Oct 22 08:14:14 EDT 2013, created: Tue Oct 22 08:14:14 EDT 2013} 2013-10-22 08:14:14,202 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-44:job-39) Schedule queued job-39 2013-10-22 08:14:14,241 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-45:job-39) Executing org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd for job-39 2013-10-22 08:14:14,242 DEBUG [cloud.async.SyncQueueManagerImpl] (Job-Executor-44:job-39) There is a pending process in sync queue(id: 19) 2013-10-22 08:14:14,285 DEBUG [db.Transaction.Transaction] (Job-Executor-45:job-39) Rolling back the transaction: Time = 5 Name = -AsyncJobManagerImpl$1.run:401-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRun:334-FutureTask.run:166-ThreadPoolExecutor.runWorker:1146-ThreadPoolExecutor$Worker.run:615-Thread.run:679; called by -Transaction.rollback:890-Transaction.removeUpTo:833-Transaction.close:657-TransactionContextBuilder.interceptException:63-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:133-RulesManagerImpl.revokePortForwardingRuleInternal:571-RulesManagerImpl.revokePortForwardingRule:562-ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept:125-DeletePortForwardingRuleCmd.execute:98-ApiDispatcher.dispatch:162-AsyncJobManagerImpl$1.run:437-Executors$RunnableAdapter.call:471 2013-10-22 08:14:14,336 ERROR [cloud.async.AsyncJobManagerImpl] (Job-Executor-45:job-39) Unexpected exception while executing org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd java.lang.NullPointerException at com.cloud.event.UsageEventUtils.publishUsageEvent(UsageEventUtils.java:132) at com.cloud.event.UsageEventUtils.publishUsageEvent(UsageEventUtils.java:73) at com.cloud.network.firewall.FirewallManagerImpl.revokeRule(FirewallManagerImpl.java:710) at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125) at com.cloud.network.rules.RulesManagerImpl.revokePortForwardingRuleInternal(RulesManagerImpl.java:571) at com.cloud.network.rules.RulesManagerImpl.revokePortForwardingRule(RulesManagerImpl.java:562) at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125) at org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd.execute(DeletePortForwardingRuleCmd.java:98) at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:162) at com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:437) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:679) 2013-10-22 08:14:14,338 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-45:job-39) Complete async job-39, jobStatus: 2, resultCode: 530, result: Error Code: 530 Error text: null 2013-10-22 08:14:14,368 DEBUG [cloud.async.SyncQueueManagerImpl] (Job-Executor-45:job-39) Sync queue (19) is currently empty 2013-10-22 08:14:14,369 WARN [cloud.async.AsyncJobManagerImpl] (Job-Executor-45:job-39) Unable to unregister active job 39 from JMX monitoring