[ https://issues.apache.org/jira/browse/CLOUDSTACK-9691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15767426#comment-15767426 ]
Mike Tutkowski commented on CLOUDSTACK-9691: -------------------------------------------- Hi - Those changes for snapshots went in to support primary-storage snapshots on managed storage. It was a big change in the sense that CloudStack had prior logic assuming snapshots necessarily went to secondary storage, where now this would not necessarily be the case (as certain snapshots can now be stored on a primary-storage device). At the time, I had thought I found all of those NPEs. Unfortunately, CloudStack doesn't have a sufficient number of integration tests, so it has been difficult to say "yeah, they're all found." If you find any more, maybe we can come up with a good way of searching the code and trying to proactively fix others. They may, however, at this point all be found and fixed already. > unhandeled excetion in list snapshot command when a primary store is deleted > ---------------------------------------------------------------------------- > > Key: CLOUDSTACK-9691 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9691 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Reporter: Anshul Gangwar > > Repro steps: > I have a setup with 3 clusters . for one cluster i deleted the primary storage > now when i traverse to storage tab getting exception "Unable to locate > datastore with id 1" > DB entries for deleted primary storage : > "id" "name" "uuid" "pool_type" "port" "data_center_id" > "pod_id" "cluster_id" "used_bytes" "capacity_bytes" > "host_address" "user_info" "path" "created" "removed" "update_time" > "status" "storage_provider_name" "scope" "hypervisor" "managed" > "capacity_iops" > "1" "dddd" \N "NetworkFilesystem" "2049" "1" "1" "1" > "4674624913408" "5902284816384" "10.147.28.7" \N > "/export/home/shweta/471.xen.primary" "2016-08-17 08:14:12" "2016-08-25 > 04:54:53" \N "Maintenance" "DefaultPrimary" "CLUSTER" \N > "0" \N > MS log shows : > 2016-08-26 14:34:36,709 DEBUG [c.c.a.ApiServlet] > (catalina-exec-1:ctx-90c9ba3a) (logid:115e39ad) ===START=== 10.233.88.59 – > GET > command=listSnapshots&response=json&listAll=true&page=1&pagesize=20&_=1472202277072 > 2016-08-26 14:34:36,747 ERROR [c.c.a.ApiServer] (catalina-exec-1:ctx-90c9ba3a > ctx-94284178) (logid:115e39ad) unhandled exception executing api command: > [Ljava.lang.String;@77f27ce8 > com.cloud.utils.exception.CloudRuntimeException: Unable to locate datastore > with id 1 > at > org.apache.cloudstack.storage.datastore.manager.PrimaryDataStoreProviderManagerImpl.getPrimaryDataStore(PrimaryDataStoreProviderManagerImpl.java:61) > at > org.apache.cloudstack.storage.datastore.DataStoreManagerImpl.getDataStore(DataStoreManagerImpl.java:48) > at > com.cloud.api.ApiResponseHelper.getDataStoreRole(ApiResponseHelper.java:571) > at > com.cloud.api.ApiResponseHelper.createSnapshotResponse(ApiResponseHelper.java:537) > at > org.apache.cloudstack.api.command.user.snapshot.ListSnapshotsCmd.execute(ListSnapshotsCmd.java:117) > at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:132) > at com.cloud.api.ApiServer.queueCommand(ApiServer.java:707) > at com.cloud.api.ApiServer.handleRequest(ApiServer.java:538) > at com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:297) > at com.cloud.api.ApiServlet$1.run(ApiServlet.java:129) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53) > at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:126) > at com.cloud.api.ApiServlet.doGet(ApiServlet.java:86) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > at > org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:889) > at > org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:721) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2268) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > 2016-08-26 14:34:36,749 DEBUG [c.c.a.ApiServlet] > (catalina-exec-1:ctx-90c9ba3a ctx-94284178) (logid:115e39ad) ===END=== > 10.233.88.59 – GET > command=listSnapshots&response=json&listAll=true&page=1&pagesize=20&_=1472202277072 > 2016-08-26 14:34:38,478 DEBUG [c.c.a.m.AgentManagerImpl] > (AgentManager-Handler-8:null) (logid SeqA 3-49869: Processing Seq 3-49869: { > Cmd , MgmtId: -1, via: 3, Ver: v1, Flags: 11, > [{"com.cloud.agent.api.ConsoleProxyLoadReportCommand":{"_proxyVmId":2,"_loadInfo":" > {\n \"connections\": []\n} > ","wait":0}}] } -- This message was sent by Atlassian JIRA (v6.3.4#6332)