Alfresco admin console - error for multi-tenant

Keywords: Alfresco - Microsoft Azure - Technical issue - Permissions
bnsupport ID: f610b84e-c057-d392-bd7f-1b86b3832f2d
Description:
hi guys,

i have installed alfresco on a new Debian VM in Azure using the bitnami launcher

while accessing the admin console and adding a new multi-tenamt user, i’m receiving the following JAVA exception

org.alfresco.service.cmr.repository.ContentIOException: 06270022 Failed to create store root: /usr/tenantstores/TMRGlobal
at org.alfresco.repo.content.filestore.FileContentStore.(FileContentStore.java:117)
at org.alfresco.repo.content.filestore.FileContentStore.(FileContentStore.java:159)
at org.alfresco.repo.tenant.TenantRoutingFileContentStore.initContentStore(TenantRoutingFileContentStore.java:72)
at org.alfresco.repo.tenant.AbstractTenantRoutingContentStore.getTenantContentStore(AbstractTenantRoutingContentStore.java:206)
at org.alfresco.repo.tenant.AbstractTenantRoutingContentStore.init(AbstractTenantRoutingContentStore.java:219)
at org.alfresco.repo.tenant.MultiTAdminServiceImpl$1.doWork(MultiTAdminServiceImpl.java:462)
at org.alfresco.repo.tenant.TenantUtil.runAsWork(TenantUtil.java:126)
at org.alfresco.repo.tenant.TenantUtil.runAsTenant(TenantUtil.java:95)
at org.alfresco.repo.tenant.TenantUtil$1.doWork(TenantUtil.java:69)
at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:602)
at org.alfresco.repo.tenant.TenantUtil.runAsUserTenant(TenantUtil.java:65)
at org.alfresco.repo.tenant.TenantUtil.runAsSystemTenant(TenantUtil.java:119)
at org.alfresco.repo.tenant.MultiTAdminServiceImpl.createTenant(MultiTAdminServiceImpl.java:453)
at org.alfresco.repo.tenant.TenantInterpreter.executeCommand(TenantInterpreter.java:314)
at org.alfresco.repo.tenant.TenantInterpreter$1$1.execute(TenantInterpreter.java:150)
at org.alfresco.repo.tenant.TenantInterpreter$1$1.execute(TenantInterpreter.java:1)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:450)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:319)
at org.alfresco.repo.tenant.TenantInterpreter$1.doWork(TenantInterpreter.java:158)
at org.alfresco.repo.tenant.TenantInterpreter$1.doWork(TenantInterpreter.java:1)
at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:602)
at org.alfresco.repo.tenant.TenantInterpreter.interpretCommand(TenantInterpreter.java:161)
at org.alfresco.repo.web.scripts.admin.DynamicInterpreterExtension.interpretCommand(DynamicInterpreterExtension.java:111)
at org.alfresco.repo.web.scripts.admin.DynamicInterpreterExtension.executeCmd(DynamicInterpreterExtension.java:74)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:138)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:226)
at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:45)
at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_alfresco_repository_admin_consoles_admin_tenantconsole_post_js_9._c_main_8(classpath*:alfresco/templates/webscripts/org/alfresco/repository/admin/consoles/admin-tenantconsole.post.js:191)
at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_alfresco_repository_admin_consoles_admin_tenantconsole_post_js_9.call(classpath*:alfresco/templates/webscripts/org/alfresco/repository/admin/consoles/admin-tenantconsole.post.js)
at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:87)
at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_alfresco_repository_admin_consoles_admin_tenantconsole_post_js_9._c_script_0(classpath*:alfresco/templates/webscripts/org/alfresco/repository/admin/consoles/admin-tenantconsole.post.js:199)
at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_alfresco_repository_admin_consoles_admin_tenantconsole_post_js_9.call(classpath*:alfresco/templates/webscripts/org/alfresco/repository/admin/consoles/admin-tenantconsole.post.js)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:409)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3566)
at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_alfresco_repository_admin_consoles_admin_tenantconsole_post_js_9.call(classpath*:alfresco/templates/webscripts/org/alfresco/repository/admin/consoles/admin-tenantconsole.post.js)
at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_alfresco_repository_admin_consoles_admin_tenantconsole_post_js_9.exec(classpath*:alfresco/templates/webscripts/org/alfresco/repository/admin/consoles/admin-tenantconsole.post.js)
at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:509)
at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:207)
at org.alfresco.repo.processor.ScriptServiceImpl.execute(ScriptServiceImpl.java:219)
at org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:181)
at org.alfresco.repo.web.scripts.RepositoryScriptProcessor.executeScript(RepositoryScriptProcessor.java:109)
at org.springframework.extensions.webscripts.AbstractWebScript.executeScript(AbstractWebScript.java:1376)
at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:86)
at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:527)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:450)
at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:595)
at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:664)
at org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:435)
at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:315)
at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:399)
at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:210)
at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
at org.alfresco.repo.web.scripts.AlfrescoWebScriptServlet.service(AlfrescoWebScriptServlet.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.extensions.webscripts.servlet.CSRFFilter.doFilter(CSRFFilter.java:349)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.alfresco.web.app.servlet.ClearSecurityContextFilter.doFilter(ClearSecurityContextFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:524)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)

Hi, @QC-Technology.

From this line:

org.alfresco.service.cmr.repository.ContentIOException: 06270022 Failed to create store root: /usr/tenantstores/TMRGlobal

It looks like it is trying to create the /usr/tenantstores/TMRGlobal directory and failing, probably due to permissions.

How are you creating that new user? Are you specifying that directory?

Regards,
Alejandro

hey so the admin console, multi-tenant page, i ran the below command

create TMRGlobal.com /usr/tenantstores/TMRGlobal

this i believe is as per the details in Alfresco help on the topic, i agree it’s likely a permissions issue, however this is a fresh out of the box VM and linux is not my jam :smiley: so i’m guessing i can resolve by setting the correct values for permissions with some sort of CLI based update or i have used the wrong multi-tenant instruction.

Create empty tenant. By default the tenant will be enabled. It will have an admin
user called "admin@<tenant domain>" with supplied admin password. All users
that the admin creates, will login using "<username>@<tenant domain>". 
The root of the contentstore directory can be optionally specified, otherwise 
it will default to the repository default root contentstore (as specified by 
the dir.contentstore property). The default workflows will also be bootstrapped.

Examples:  create zzz.com l3tm31n /usr/tenantstores/zzz
           create yyy.zzz.com g00dby3 /usr/tenantstores/yyy.zzz
           create myorg h3ll0

Maybe you can try first without specifying a directory, as according to the documentation you just shared it will use the default one if not specified.

yep that fixed it :slight_smile:

create

is all you need, the above two examples which include the directory can be ignored

Nice! I’m closing this thread, but please don’t hesitate to open a new one should so encounter further issues.

Regards,
Alejandro