[
https://issues.apache.org/jira/browse/CLOUDSTACK-6598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13993219#comment-13993219
]
Min Chen commented on CLOUDSTACK-6598:
--------------------------------------
This is caused by some racing condition. In listAccounts, we first search to
get a list of accounts. At that point, some of the accounts returned are not
removed yet. Then to display resource limit for those accounts, we check if the
account is root admin to display different resource limit. At that point, that
account to query is removed in DB, thus causing the NULL account returned.
Fixed this by guarding this case.
> IAM - listAccount() retrurns "Caller cannot be passed as NULL to IAM!" when
> domain deletion is in progress.
> -----------------------------------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-6598
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6598
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: IAM
> Affects Versions: 4.4.0
> Environment: Build from 4.4
> Reporter: Sangeetha Hariharan
> Assignee: Min Chen
> Priority: Critical
> Fix For: 4.4.0
>
> Attachments: logs.rar
>
>
> IAM - listAccount() retrurns "Caller cannot be passed as NULL to IAM!" when
> domain deletion is in progress.
> Steps to reproduce the problem:
> Set up:
> Pre Reqs:
> Admin - Creates object
> Domain Admin for d1 - D1 - Creates object - d1
> Domain Admin for d1 - D1/D11
> User account for d1 - D1/D111 - Creates object - d111a
> Domain Admin for d1 - D1/D12
> Domain Admin for d2 - D2 - Creates object -d2
> User Account in domain D1 - userD1-1 - Creates object -d1a
> User Account in domain D1 - userD1-2 - Creates object - d1b
> User Account in domain D1/D11 - userD1-a - Creates object - d11a
> User Account in domain D1/D11 - userD1-a - Creates object - d11b
> User Account in domain D1/D12- userD1-b - Creates object - d12a
> User Account in domain D1/D12 - userD-a - Creates object - d12b
> Object in this case VM.
> Delete Domain D1 with force flag set to true.
> When domain deletion is still in progress (which results in accounts being
> deleted) , attempt to list accounts as admin :
> http://10.223.49.6:8080/client/api?command=listAccounts&response=json&sessionkey=gm%2BM%2FsYhW%2B%2BXMJZoGESQ5o9Ip6c%3D&listAll=true&page=1&pagesize=20&_=1399498568910
> This results in list call failing with error message - "Caller cannot be
> passed as NULL to IAM!"
> 2014-05-07 10:31:37,241 INFO [a.c.c.a.ApiServer]
> (catalina-exec-4:ctx-afb6658d ctx-1e1a2a3d) (userId=2 accountId=2
> sessionId=EF35EC79480DF7A89A4D663537DA38B9) 10.215.2.8 -- GET
> command=listAccounts&response=json&sessionkey=gm%2BM%2FsYhW%2B%2BXMJZoGESQ5o9Ip6c%3D&listAll=true&page=1&pagesize=20&_=1399497331028
> 431 Caller cannot be passed as NULL to IAM!
--
This message was sent by Atlassian JIRA
(v6.2#6252)