irods-contrib / metalnx-web

Metalnx Web Application
https://metalnx.github.io/
BSD 3-Clause "New" or "Revised" License
36 stars 36 forks source link

downloading CSV of metadata search results fails w/ SYS_MALLOC_ERR #195

Closed trel closed 3 years ago

trel commented 3 years ago

When downloading the results of a metadata search...

Screen Shot 2021-02-17 at 11 39 45 AM

The third specific query that Metalnx creates/runs/removes fails during execution and leaves this in the rodsLog:

Feb 17 11:25:36 pid:17325 NOTICE: _rsSpecificQuery: specificQuery status = -16000
Feb 17 11:25:36 pid:17325 NOTICE: rsSpecificQuery: rcSpecificQuery failed, status = -16000

But it's something deeper than bad SQL...

$ ierror 16000
irods error: -16000 SYS_MALLOC_ERR 

This is the Metalnx log...

metalnx_1  | 2021-02-17 16:33:04 INFO  MetadataServiceImpl:128 - looking for data objects, second branch...
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecQueryServiceImpl:85 - searchByMetadata()
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecQueryServiceImpl:91 - offset:1
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecQueryServiceImpl:92 - limit:2147483647
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecQueryServiceImpl:102 - metadataSearch:[DataGridMetadataSearch [attribute=a, operator=ILIKE, value=v, unit=, regex=([^A-Za-z0-9-_.,:=!/ ]+), att
rColName=m.meta_attr_name, valueColName=m.meta_attr_value, unitColName=m.meta_attr_unit]]
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecQueryServiceImpl:103 - zone:tempZone
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecQueryServiceImpl:104 - searchAgainstColls:false
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecQueryServiceImpl:105 - pageContext:DataGridPageContext [startItemNumber=1, endItemNumber=0, totalNumberOfItems=3]
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:256 - addSpecificQuery()
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:270 - executing specific query PI
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecQueryServiceImpl:130 - Specific query:  SELECT obj_name, size, obj_owner, repl_num, create_ts, modify_ts, resc_name, parent_path, totalMatches 
FROM ( SELECT       d.data_name as obj_name,       d.data_size as size,        d.data_owner_name as obj_owner,       d.data_repl_num as repl_num,       d.create_ts as create_ts,      d.m
odify_ts as modify_ts,       d.resc_name as resc_name,       c.coll_name as parent_path,      COUNT(d.data_name) as totalMatches FROM r_data_main d  JOIN r_coll_main c ON (d.coll_id = c.
coll_id)  JOIN (  SELECT map.object_id AS map_object_id  FROM r_objt_metamap map  JOIN (      SELECT m.meta_id, m.meta_attr_name, m.meta_attr_value     FROM r_meta_main m  WHERE   LOWER(
 m.meta_attr_name ) = LOWER( 'a' )  AND  LOWER( m.meta_attr_value ) ILIKE LOWER(  '%v%'  )   )  AS metadata ON (metadata.meta_id = map.meta_id)  GROUP BY map.object_id  HAVING COUNT(map.
meta_id) > 0  ) AS data_obj_metadata ON (d.data_id = map_object_id)  GROUP BY       d.data_name,      d.data_size,      d.data_owner_name,      d.data_repl_num,      d.create_ts,      d.
modify_ts,      d.resc_name,       c.coll_name ORDER BY totalMatches DESC, d.data_name  ) AS ms  LIMIT 2147483647 OFFSET 1
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:145 - alias:metalnxUserQuery_1613579584824
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx_1  | 2021-02-17 16:33:04 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx_1  | 2021-02-17 16:33:04 ERROR SpecQueryServiceImpl:134 - Could not get specific query: 
metalnx_1  | org.irods.jargon.core.exception.JargonException: error code received from iRODS:-16000
metalnx_1  |    at org.irods.jargon.core.connection.IRODSErrorScanner.checkSpecificCodesAndThrowIfExceptionLocated(IRODSErrorScanner.java:276)
metalnx_1  |    at org.irods.jargon.core.connection.IRODSErrorScanner.inspectAndThrowIfNeeded(IRODSErrorScanner.java:115)
metalnx_1  |    at org.irods.jargon.core.connection.IRODSMidLevelProtocol.processMessageInfoLessThanZero(IRODSMidLevelProtocol.java:1542)
metalnx_1  |    at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readMessage(IRODSMidLevelProtocol.java:1046)
metalnx_1  |    at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readMessage(IRODSMidLevelProtocol.java:1014)
metalnx_1  |    at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:427)
metalnx_1  |    at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:553)
metalnx_1  |    at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:909)
metalnx_1  |    at org.irods.jargon.core.pub.SpecificQueryAOImpl.queryOnAliasGivenDefinition(SpecificQueryAOImpl.java:483)
metalnx_1  |    at org.irods.jargon.core.pub.SpecificQueryAOImpl.executeSpecificQueryUsingAlias(SpecificQueryAOImpl.java:451)
metalnx_1  |    at com.emc.metalnx.services.irods.SpecQueryServiceImpl.searchByMetadata(SpecQueryServiceImpl.java:132)
metalnx_1  |    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx_1  |    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx_1  |    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx_1  |    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx_1  |    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
metalnx_1  |    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
metalnx_1  |    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
metalnx_1  |    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
metalnx_1  |    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
metalnx_1  |    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
metalnx_1  |    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
metalnx_1  |    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
metalnx_1  |    at com.sun.proxy.$Proxy47.searchByMetadata(Unknown Source)
metalnx_1  |    at com.emc.metalnx.services.irods.MetadataServiceImpl.findByMetadata(MetadataServiceImpl.java:130)
metalnx_1  |    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx_1  |    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx_1  |    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx_1  |    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx_1  |    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
metalnx_1  |    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
metalnx_1  |    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
metalnx_1  |    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
metalnx_1  |    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
metalnx_1  |    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
metalnx_1  |    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
metalnx_1  |    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
metalnx_1  |    at com.sun.proxy.$Proxy54.findByMetadata(Unknown Source)
metalnx_1  |    at com.emc.metalnx.controller.MetadataController.exportSearchResultsToCSVFile(MetadataController.java:227)
metalnx_1  |    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx_1  |    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx_1  |    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx_1  |    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx_1  |    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
metalnx_1  |    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
metalnx_1  |    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
metalnx_1  |    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
metalnx_1  |    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
metalnx_1  |    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
metalnx_1  |    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
metalnx_1  |    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
metalnx_1  |    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
metalnx_1  |    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
metalnx_1  |    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
metalnx_1  |    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
metalnx_1  |    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
metalnx_1  |    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
metalnx_1  |    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx_1  |    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
metalnx_1  |    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx_1  |    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
metalnx_1  |    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
metalnx_1  |    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
metalnx_1  |    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
metalnx_1  |    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
metalnx_1  |    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
metalnx_1  |    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
metalnx_1  |    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx_1  |    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx_1  |    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
metalnx_1  |    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
metalnx_1  |    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx_1  |    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx_1  |    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
metalnx_1  |    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
metalnx_1  |    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:668)
metalnx_1  |    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
metalnx_1  |    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
metalnx_1  |    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
metalnx_1  |    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
metalnx_1  |    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
metalnx_1  |    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
metalnx_1  |    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
metalnx_1  |    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
metalnx_1  |    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
metalnx_1  |    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
metalnx_1  |    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
metalnx_1  |    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
metalnx_1  |    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
metalnx_1  |    at java.base/java.lang.Thread.run(Thread.java:834)
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:308 - removeSpecificQueryByAlias()
metalnx_1  | 2021-02-17 16:33:04 INFO  SpecificQueryAOImpl:319 - executing specific query PI
metalnx_1  | 2021-02-17 16:33:04 ERROR MetadataServiceImpl:142 - Could not find data objects by metadata.
kuntzagk commented 3 years ago

I'm wondering: shouldn't the CSV download of the search results run the same queries as the search itself?

trel commented 3 years ago

I would think so - I expect there are two sources of truth in the code, and the CSV path was not updated/synced when the 'main' search code was updated/changed.

michael-conway commented 3 years ago

my test versus master was successful getting the .csv, so let's dig into this a bit more?

PS the csv format is terrible, as far as I can see, and perhaps in this it might be good to decide what this file should look like?

michael-conway commented 3 years ago

This was the sum of master with all the latest pull requests, and perhaps we should talk tomorrow about setting the baseline?

trel commented 3 years ago

Definitely let's talk.

I have only seen the failure above - which confirmed the initial report to us via email.

michael-conway commented 3 years ago

A quick scan says it doesn't run a different one. I may be a lier but I ran it at the end of the day but can pick up in am, I'll help you guys sort it out

On Thu, Feb 18, 2021, 3:23 AM Andreas Kuntzagk notifications@github.com wrote:

I'm wondering: shouldn't the CSV download of the search results run the same queries as the search itself?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/irods-contrib/metalnx-web/issues/195#issuecomment-781145615, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIL4LKAG4OHIUQSEUJ4O6LS7TE6PANCNFSM4XYVZZ6A .

trel commented 3 years ago

initial search with 'a' and 'v':

metalnx_1  | 2021-02-24 00:27:18 INFO  SpecQueryServiceImpl:102 - metadataSearch:[DataGridMetadataSearch [attribute=a, operator=ILIKE, value=v, unit=, regex=([^A-Za-z0-9-_.,:=!/ ]+), att
rColName=m.meta_attr_name, valueColName=m.meta_attr_value, unitColName=m.meta_attr_unit]]
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecQueryServiceImpl:103 - zone:tempZone
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecQueryServiceImpl:104 - searchAgainstColls:false
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecQueryServiceImpl:105 - pageContext:DataGridPageContext [startItemNumber=0, endItemNumber=0, totalNumberOfItems=3]
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecificQueryAOImpl:256 - addSpecificQuery()
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecificQueryAOImpl:270 - executing specific query PI
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecQueryServiceImpl:130 - Specific query:  SELECT obj_name, size, obj_owner, repl_num, create_ts, modify_ts, resc_name, parent_path, totalMatches 
FROM ( SELECT       d.data_name as obj_name,       d.data_size as size,        d.data_owner_name as obj_owner,       d.data_repl_num as repl_num,       d.create_ts as create_ts,      d.m
odify_ts as modify_ts,       d.resc_name as resc_name,       c.coll_name as parent_path,      COUNT(d.data_name) as totalMatches FROM r_data_main d  JOIN r_coll_main c ON (d.coll_id = c.
coll_id)  JOIN (  SELECT map.object_id AS map_object_id  FROM r_objt_metamap map  JOIN (      SELECT m.meta_id, m.meta_attr_name, m.meta_attr_value     FROM r_meta_main m  WHERE   LOWER(
 m.meta_attr_name ) = LOWER( 'a' )  AND  LOWER( m.meta_attr_value ) ILIKE LOWER(  '%v%'  )   )  AS metadata ON (metadata.meta_id = map.meta_id)  GROUP BY map.object_id  HAVING COUNT(map.
meta_id) > 0  ) AS data_obj_metadata ON (d.data_id = map_object_id)  GROUP BY       d.data_name,      d.data_size,      d.data_owner_name,      d.data_repl_num,      d.create_ts,      d.
modify_ts,      d.resc_name,       c.coll_name ORDER BY totalMatches DESC, d.data_name  ) AS ms  LIMIT 10

metalnx_1  | 2021-02-24 00:27:18 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecificQueryAOImpl:145 - alias:metalnxUserQuery_1614126438629
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx_1  | 2021-02-24 00:27:18 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx_1  | 2021-02-24 00:27:18 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx_1  | 2021-02-24 00:27:18 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 3

CSV button:

metalnx_1  | 2021-02-24 00:29:24 INFO  SpecQueryServiceImpl:102 - metadataSearch:[DataGridMetadataSearch [attribute=a, operator=ILIKE, value=v, unit=, regex=([^A-Za-z0-9-_.,:=!/ ]+), att
rColName=m.meta_attr_name, valueColName=m.meta_attr_value, unitColName=m.meta_attr_unit]]
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecQueryServiceImpl:103 - zone:tempZone
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecQueryServiceImpl:104 - searchAgainstColls:false
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecQueryServiceImpl:105 - pageContext:DataGridPageContext [startItemNumber=1, endItemNumber=0, totalNumberOfItems=3]
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecificQueryAOImpl:256 - addSpecificQuery()
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecificQueryAOImpl:270 - executing specific query PI
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecQueryServiceImpl:130 - Specific query:  SELECT obj_name, size, obj_owner, repl_num, create_ts, modify_ts, resc_name, parent_path, totalMatches 
FROM ( SELECT       d.data_name as obj_name,       d.data_size as size,        d.data_owner_name as obj_owner,       d.data_repl_num as repl_num,       d.create_ts as create_ts,      d.m
odify_ts as modify_ts,       d.resc_name as resc_name,       c.coll_name as parent_path,      COUNT(d.data_name) as totalMatches FROM r_data_main d  JOIN r_coll_main c ON (d.coll_id = c.
coll_id)  JOIN (  SELECT map.object_id AS map_object_id  FROM r_objt_metamap map  JOIN (      SELECT m.meta_id, m.meta_attr_name, m.meta_attr_value     FROM r_meta_main m  WHERE   LOWER(
 m.meta_attr_name ) = LOWER( 'a' )  AND  LOWER( m.meta_attr_value ) ILIKE LOWER(  '%v%'  )   )  AS metadata ON (metadata.meta_id = map.meta_id)  GROUP BY map.object_id  HAVING COUNT(map.
meta_id) > 0  ) AS data_obj_metadata ON (d.data_id = map_object_id)  GROUP BY       d.data_name,      d.data_size,      d.data_owner_name,      d.data_repl_num,      d.create_ts,      d.
modify_ts,      d.resc_name,       c.coll_name ORDER BY totalMatches DESC, d.data_name  ) AS ms  LIMIT 2147483647 OFFSET 1
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecificQueryAOImpl:145 - alias:metalnxUserQuery_1614126564439
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx_1  | 2021-02-24 00:29:24 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx_1  | 2021-02-24 00:29:24 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx_1  | 2021-02-24 00:29:24 ERROR SpecQueryServiceImpl:134 - Could not get specific query: 
metalnx_1  | org.irods.jargon.core.exception.JargonException: error code received from iRODS:-16000

identical query except for the LIMIT and OFFSET at the end.

the CSV button can't find the query for some reason.

michael-conway commented 3 years ago

Is a 1600 an sql format exception from the db?

trel commented 3 years ago

No... it's the SYS_MALLOC_ERR

$ ierror -16000
irods error: -16000 SYS_MALLOC_ERR 

But that's a red herring I think... there is no error in the server-side rodsLog.

trel commented 3 years ago

I will also note that the specific query in question... 'Could not get specific query'... runs fine by hand at the psql prompt.

There is nothing wrong with the SQL shown in the log - gave me three results as expected.

kuntzagk commented 3 years ago

I do see error messages in the server-side rodsLog when downloading the CSV:

Feb 24 11:04:33 pid:21321 NOTICE: _rsSpecificQuery: specificQuery status = -16000
Feb 24 11:04:33 pid:21321 NOTICE: rsSpecificQuery: rcSpecificQuery failed, status = -16000

I'm wondering if the very high LIMIT in the specific query might trigger some kind of overflow in the server? I can confirm that running the specific query with 'iquest' does NOT trigger the SYS_MALLOC_ERR.

michael-conway commented 3 years ago

I'd not trust the metalnx error message, it does a lot of 'real error quashing' internally. I'll try and look for error masking. That limit looks weird, and one way of addressing this would be to cap at 1000 and do a paging loop. In this we might want to update what is IN the csv because to me it currently looks unusable.

Here's an example running against the internal docker test framework in metalnx and jargon...

metadata-search-result_test1_20210224_125615.csv.zip

michael-conway commented 3 years ago

I do get that result just fine, it's a mess though.

Here's my log for the successful 'csv' action against the current HEAD of master

csv.log

kuntzagk commented 3 years ago

Your test result did not contain any data rows, is that correct? Regarding the content of the csv: it seems that it contains what the search page displays (going by the column header in your csv) So this is what I would expect here.

That you do not see the error on the server might hint at a server problem?

trel commented 3 years ago

I have confirmed that downloading a CSV of search results without multiple replicas of the same data object... works.

Mike, make another replica of the data object that you're finding with the search - and I think you will see the failure.

trel commented 3 years ago

To reproduce....

First...

$ ils -L
/tempZone/home/rods:
  rods              0 demoResc          582 2021-02-02.14:09 & aoo
        generic    /var/lib/irods/Vault/home/rods/aoo

$ imeta add -d aoo x y z

Search for 'x' 'Contains' 'y' in Metalnx... see a single row result, download CSV... SUCCESS


Then...

$ irepl -R anotherResc aoo
$ ils -L aoo
  rods              0 demoResc          582 2021-02-02.14:09 & aoo
        generic    /var/lib/irods/Vault/home/rods/aoo
  rods              1 anotherResc          582 2021-02-24.09:10 & aoo
        generic    /tmp/anotherRescVault/home/rods/aoo

Search for 'x' 'Contains' 'y' in Metalnx... see two rows in result, download CSV... FAIL


I think this might be related to the columns being returned by the specific query not being aware of the move to r_data_main.resc_id in 4.2.x (see https://github.com/irods-contrib/metalnx-web/issues/203).

It does not appear to be triggered by resource hierarchies themselves - note the above example is two root resources (demoResc and anotherResc, no hierarchies).

michael-conway commented 3 years ago

I can replicate via your procedure, getting a read length = 0, that is helpful!

          | 2021-02-24 14:27:33 INFO  MetadataController:129 - jsonMetadataSearch {"attribute":["x"],"operator":["LIKE"],"value":["y"],"unit":[""]}
metalnx             | 2021-02-24 14:27:33 INFO  MetadataController:130 - draw:1
metalnx             | 2021-02-24 14:27:33 INFO  MetadataController:131 - start 0
metalnx             | 2021-02-24 14:27:33 INFO  MetadataController:132 - length:10
metalnx             | 2021-02-24 14:27:33 INFO  HttpResponseHandlerInterceptor:52 - postHandle()
metalnx             | 2021-02-24 14:27:33 INFO  MetadataController:159 - attribute:["x"]
metalnx             | 2021-02-24 14:27:33 INFO  MetadataController:160 - operators:["LIKE"]
metalnx             | 2021-02-24 14:27:33 INFO  MetadataController:161 - values:["y"]
metalnx             | 2021-02-24 14:27:33 INFO  MetadataController:162 - units:[""]
metalnx             | 2021-02-24 14:27:33 INFO  MetadataServiceImpl:65 - findByMetadata()
metalnx             | 2021-02-24 14:27:33 INFO  MetadataServiceImpl:75 - searchList:[DataGridMetadataSearch [attribute=x, operator=ILIKE, value=y, unit=, regex=([^A-Za-z0-9-_.,:=!/ ]+), attrColName=m.meta_attr_name, valueColName=m.meta_attr_value, unitColName=m.meta_attr_unit]]
metalnx             | 2021-02-24 14:27:33 INFO  MetadataServiceImpl:76 - pageContext:DataGridPageContext [startItemNumber=0, endItemNumber=0, totalNumberOfItems=0]
metalnx             | 2021-02-24 14:27:33 INFO  MetadataServiceImpl:77 - start:0
metalnx             | 2021-02-24 14:27:33 INFO  MetadataServiceImpl:78 - length:10
metalnx             | 2021-02-24 14:27:33 INFO  MetadataServiceImpl:80 - endIndex:9
metalnx             | 2021-02-24 14:27:33 WARN  IRODSSession:572 - closing session that is already closed, silently ignore
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:256 - addSpecificQuery()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:270 - executing specific query PI
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:188 - Specific query: WITH searchMetadata AS ( SELECT obj_name, parent_path, obj_owner, create_ts, modify_ts, resc_name, totalMatches FROM ( SELECT c.coll_name as obj_name,      c.parent_coll_name as parent_path,      c.coll_owner_name as obj_owner,      c.create_ts as create_ts,      c.modify_ts as modify_ts,      '' as resc_name,      c.coll_inheritance,      COUNT(c.coll_name) as totalMatches FROM       r_coll_main c  JOIN (  SELECT map.object_id AS map_object_id  FROM r_objt_metamap map  JOIN (      SELECT m.meta_id, m.meta_attr_name, m.meta_attr_value     FROM r_meta_main m  WHERE   LOWER( m.meta_attr_name ) = LOWER( 'x' )  AND  LOWER( m.meta_attr_value ) ILIKE LOWER(  '%y%'  )   )  AS metadata ON (metadata.meta_id = map.meta_id)  GROUP BY map.object_id  HAVING COUNT(map.meta_id) > 0  ) AS coll_metadata ON (c.coll_id = map_object_id)  GROUP BY       c.coll_name,      c.parent_coll_name,      c.coll_owner_name,      c.create_ts,      c.modify_ts,      resc_name,      c.coll_inheritance ORDER BY totalMatches DESC, c.coll_name  ) AS ms ) SELECT COUNT(*) FROM searchMetadata 
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:145 - alias:metalnxUserQuery_1614176853293
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:308 - removeSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:319 - executing specific query PI
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:256 - addSpecificQuery()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:270 - executing specific query PI
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:188 - Specific query: WITH searchMetadata AS ( SELECT obj_name, size, obj_owner, repl_num, create_ts, modify_ts, resc_name, parent_path, totalMatches FROM ( SELECT       d.data_name as obj_name,       d.data_size as size,        d.data_owner_name as obj_owner,       d.data_repl_num as repl_num,       d.create_ts as create_ts,      d.modify_ts as modify_ts,       d.resc_name as resc_name,       c.coll_name as parent_path,      COUNT(d.data_name) as totalMatches FROM r_data_main d  JOIN r_coll_main c ON (d.coll_id = c.coll_id)  JOIN (  SELECT map.object_id AS map_object_id  FROM r_objt_metamap map  JOIN (      SELECT m.meta_id, m.meta_attr_name, m.meta_attr_value     FROM r_meta_main m  WHERE   LOWER( m.meta_attr_name ) = LOWER( 'x' )  AND  LOWER( m.meta_attr_value ) ILIKE LOWER(  '%y%'  )   )  AS metadata ON (metadata.meta_id = map.meta_id)  GROUP BY map.object_id  HAVING COUNT(map.meta_id) > 0  ) AS data_obj_metadata ON (d.data_id = map_object_id)  GROUP BY       d.data_name,      d.data_size,      d.data_owner_name,      d.data_repl_num,      d.create_ts,      d.modify_ts,      d.resc_name,       c.coll_name ORDER BY totalMatches DESC, d.data_name  ) AS ms ) SELECT COUNT(*) FROM searchMetadata 
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:145 - alias:metalnxUserQuery_1614176853431
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:308 - removeSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:319 - executing specific query PI
metalnx             | 2021-02-24 14:27:33 INFO  MetadataServiceImpl:102 - totalCollections:0
metalnx             | 2021-02-24 14:27:33 INFO  MetadataServiceImpl:103 - totalDataObjects:2
metalnx             | 2021-02-24 14:27:33 INFO  MetadataServiceImpl:128 - looking for data objects, second branch...
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:85 - searchByMetadata()
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:91 - offset:0
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:92 - limit:10
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:102 - metadataSearch:[DataGridMetadataSearch [attribute=x, operator=ILIKE, value=y, unit=, regex=([^A-Za-z0-9-_.,:=!/ ]+), attrColName=m.meta_attr_name, valueColName=m.meta_attr_value, unitColName=m.meta_attr_unit]]
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:103 - zone:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:104 - searchAgainstColls:false
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:105 - pageContext:DataGridPageContext [startItemNumber=0, endItemNumber=0, totalNumberOfItems=2]
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:256 - addSpecificQuery()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:270 - executing specific query PI
metalnx             | 2021-02-24 14:27:33 INFO  SpecQueryServiceImpl:130 - Specific query:  SELECT obj_name, size, obj_owner, repl_num, create_ts, modify_ts, resc_name, parent_path, totalMatches FROM ( SELECT       d.data_name as obj_name,       d.data_size as size,        d.data_owner_name as obj_owner,       d.data_repl_num as repl_num,       d.create_ts as create_ts,      d.modify_ts as modify_ts,       d.resc_name as resc_name,       c.coll_name as parent_path,      COUNT(d.data_name) as totalMatches FROM r_data_main d  JOIN r_coll_main c ON (d.coll_id = c.coll_id)  JOIN (  SELECT map.object_id AS map_object_id  FROM r_objt_metamap map  JOIN (      SELECT m.meta_id, m.meta_attr_name, m.meta_attr_value     FROM r_meta_main m  WHERE   LOWER( m.meta_attr_name ) = LOWER( 'x' )  AND  LOWER( m.meta_attr_value ) ILIKE LOWER(  '%y%'  )   )  AS metadata ON (metadata.meta_id = map.meta_id)  GROUP BY map.object_id  HAVING COUNT(map.meta_id) > 0  ) AS data_obj_metadata ON (d.data_id = map_object_id)  GROUP BY       d.data_name,      d.data_size,      d.data_owner_name,      d.data_repl_num,      d.create_ts,      d.modify_ts,      d.resc_name,       c.coll_name ORDER BY totalMatches DESC, d.data_name  ) AS ms  LIMIT 10
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:145 - alias:metalnxUserQuery_1614176853475
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 2
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:308 - removeSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:319 - executing specific query PI
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:263 - setting file name, given path = /tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:264 - detected local separator = /
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:293 - file name was set as: bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileSystemAOImpl:258 - getFilePermissionsForGivenUser()
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileSystemAOImpl:270 - delegating to DataObjectAO
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3274 - queryUser:rods
metalnx             | 2021-02-24 14:27:33 INFO  FileCatalogObjectAOImpl:201 - retrieveObjStat()
metalnx             | 2021-02-24 14:27:33 INFO  FileCatalogObjectAOImpl:207 - irodsAbsolutePath:/tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  CollectionListingUtils:1278 - ObjStat [absolutePath=/tempZone/home/rods/boo/bio-it-2020.pdf, objectPath=, objectType=DATA_OBJECT, dataId=10040, checksum=sha2:gAFqb2559OUHctqW42OMc0iS4oIf3GxrpfFd1vN1PjE=, ownerName=rods, ownerZone=tempZone, objSize=27696434, createdAt=Wed Feb 24 14:24:21 GMT 2021, modifiedAt=Wed Feb 24 14:24:21 GMT 2021, specColType=NORMAL, collectionPath=, cacheDir=, cacheDirty=false, replNumber=0, standInGeneratedObjStat=false]
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3789 - listPermissionsForDataObjectForUserName path: /tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3790 - userName:rods
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:263 - setting file name, given path = /tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:264 - detected local separator = /
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:293 - file name was set as: bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3601 - theUser:rods
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3602 - theZone:
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3603 - targetZone:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  IRODSGenQueryExecutorImpl:130 - executeIRODSQueryAndCloseResultInZone()
metalnx             | 2021-02-24 14:27:33 INFO  IRODSGenQueryExecutorImpl:140 - query: IRODSGenQueryFromBuilder [irodsGenQueryBuilderData=IRODSGenQueryBuilderQueryData [selectFields=[Select field
metalnx             |    selectFieldColumnName:USER_NAME
metalnx             |    selectFieldNumericTranslation:202
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD, Select field
metalnx             |    selectFieldColumnName:DATA_ACCESS_USER_ID
metalnx             |    selectFieldNumericTranslation:703
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD, Select field
metalnx             |    selectFieldColumnName:DATA_ACCESS_TYPE
metalnx             |    selectFieldNumericTranslation:700
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD, Select field
metalnx             |    selectFieldColumnName:USER_TYPE
metalnx             |    selectFieldNumericTranslation:203
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD, Select field
metalnx             |    selectFieldColumnName:USER_ZONE
metalnx             |    selectFieldNumericTranslation:204
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD], conditions=[GenQueryBuilderCondition
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD
metalnx             |    selectFieldNumericTranslation:501
metalnx             |    selectFieldColumnName:COLL_NAME
metalnx             |    operator:EQUAL
metalnx             |    value:'/tempZone/home/rods/boo', GenQueryBuilderCondition
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD
metalnx             |    selectFieldNumericTranslation:403
metalnx             |    selectFieldColumnName:DATA_NAME
metalnx             |    operator:EQUAL
metalnx             |    value:'bio-it-2020.pdf', GenQueryBuilderCondition
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD
metalnx             |    selectFieldNumericTranslation:202
metalnx             |    selectFieldColumnName:USER_NAME
metalnx             |    operator:EQUAL
metalnx             |    value:'rods'], orderByFields=[org.irods.jargon.core.query.GenQueryOrderByField@c8f06c7], distinct=true, upperCase=false, computeTotalRowCount=false]]
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:85 - continuation value: 0
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:95 - total records:0
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:116 - auto closing result set
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:145 - closeResults()
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:151 - no results to close, ignore
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3574 - see if there is a permission based on group membership...
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3578 - is set to use specific query for group permissions via isUsingSpecQueryForDataObjPermissionsForUserInGroup()
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3639 - findPermissionForUserGrantedThroughUserGroup()
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:263 - setting file name, given path = /tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:264 - detected local separator = /
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:293 - file name was set as: bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:145 - alias:listUserACLForDataObjViaGroup
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 2
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  FileCatalogObjectAOImpl:306 - user file permission greater, using this:
metalnx             | UserFilePermission
metalnx             |     userName:rods
metalnx             |     userId:10003
metalnx             |     filePermissionEnum:OWN
metalnx             |    userType:RODS_ADMIN
metalnx             |    userZone:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:263 - setting file name, given path = /tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:264 - detected local separator = /
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:293 - file name was set as: bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileSystemAOImpl:258 - getFilePermissionsForGivenUser()
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileSystemAOImpl:270 - delegating to DataObjectAO
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3274 - queryUser:rods
metalnx             | 2021-02-24 14:27:33 INFO  FileCatalogObjectAOImpl:201 - retrieveObjStat()
metalnx             | 2021-02-24 14:27:33 INFO  FileCatalogObjectAOImpl:207 - irodsAbsolutePath:/tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  CollectionListingUtils:1278 - ObjStat [absolutePath=/tempZone/home/rods/boo/bio-it-2020.pdf, objectPath=, objectType=DATA_OBJECT, dataId=10040, checksum=sha2:gAFqb2559OUHctqW42OMc0iS4oIf3GxrpfFd1vN1PjE=, ownerName=rods, ownerZone=tempZone, objSize=27696434, createdAt=Wed Feb 24 14:24:21 GMT 2021, modifiedAt=Wed Feb 24 14:24:21 GMT 2021, specColType=NORMAL, collectionPath=, cacheDir=, cacheDirty=false, replNumber=0, standInGeneratedObjStat=false]
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3789 - listPermissionsForDataObjectForUserName path: /tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3790 - userName:rods
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:263 - setting file name, given path = /tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:264 - detected local separator = /
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:293 - file name was set as: bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3601 - theUser:rods
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3602 - theZone:
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3603 - targetZone:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  IRODSGenQueryExecutorImpl:130 - executeIRODSQueryAndCloseResultInZone()
metalnx             | 2021-02-24 14:27:33 INFO  IRODSGenQueryExecutorImpl:140 - query: IRODSGenQueryFromBuilder [irodsGenQueryBuilderData=IRODSGenQueryBuilderQueryData [selectFields=[Select field
metalnx             |    selectFieldColumnName:USER_NAME
metalnx             |    selectFieldNumericTranslation:202
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD, Select field
metalnx             |    selectFieldColumnName:DATA_ACCESS_USER_ID
metalnx             |    selectFieldNumericTranslation:703
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD, Select field
metalnx             |    selectFieldColumnName:DATA_ACCESS_TYPE
metalnx             |    selectFieldNumericTranslation:700
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD, Select field
metalnx             |    selectFieldColumnName:USER_TYPE
metalnx             |    selectFieldNumericTranslation:203
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD, Select field
metalnx             |    selectFieldColumnName:USER_ZONE
metalnx             |    selectFieldNumericTranslation:204
metalnx             |    selectFieldType:FIELD
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD], conditions=[GenQueryBuilderCondition
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD
metalnx             |    selectFieldNumericTranslation:501
metalnx             |    selectFieldColumnName:COLL_NAME
metalnx             |    operator:EQUAL
metalnx             |    value:'/tempZone/home/rods/boo', GenQueryBuilderCondition
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD
metalnx             |    selectFieldNumericTranslation:403
metalnx             |    selectFieldColumnName:DATA_NAME
metalnx             |    operator:EQUAL
metalnx             |    value:'bio-it-2020.pdf', GenQueryBuilderCondition
metalnx             |    selectFieldSource:DEFINED_QUERY_FIELD
metalnx             |    selectFieldNumericTranslation:202
metalnx             |    selectFieldColumnName:USER_NAME
metalnx             |    operator:EQUAL
metalnx             |    value:'rods'], orderByFields=[org.irods.jargon.core.query.GenQueryOrderByField@3140ee5e], distinct=true, upperCase=false, computeTotalRowCount=false]]
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:85 - continuation value: 0
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:95 - total records:0
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:116 - auto closing result set
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:145 - closeResults()
metalnx             | 2021-02-24 14:27:33 INFO  GenQueryProcessor:151 - no results to close, ignore
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3574 - see if there is a permission based on group membership...
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3578 - is set to use specific query for group permissions via isUsingSpecQueryForDataObjPermissionsForUserInGroup()
metalnx             | 2021-02-24 14:27:33 INFO  DataObjectAOImpl:3639 - findPermissionForUserGrantedThroughUserGroup()
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:263 - setting file name, given path = /tempZone/home/rods/boo/bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:264 - detected local separator = /
metalnx             | 2021-02-24 14:27:33 INFO  IRODSFileImpl:293 - file name was set as: bio-it-2020.pdf
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:145 - alias:listUserACLForDataObjViaGroup
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 2
metalnx             | 2021-02-24 14:27:33 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:33 INFO  FileCatalogObjectAOImpl:306 - user file permission greater, using this:
metalnx             | UserFilePermission
metalnx             |     userName:rods
metalnx             |     userId:10003
metalnx             |     filePermissionEnum:OWN
metalnx             |    userType:RODS_ADMIN
metalnx             |    userZone:tempZone
metalnx             | 2021-02-24 14:27:33 INFO  HttpResponseHandlerInterceptor:52 - postHandle()
metalnx             | 2021-02-24 14:27:38 INFO  LoggedUserUtils:29 - getLoggedDataGridUser()
metalnx             | 2021-02-24 14:27:38 INFO  LoggedUserUtils:38 - auth:org.springframework.security.authentication.UsernamePasswordAuthenticationToken@d5ffd09b: Principal: rods; Credentials: [PROTECTED]; Authenticated: true; Details: com.emc.metalnx.services.auth.UserTokenDetails@36260db1; Granted Authorities: com.emc.metalnx.services.auth.IRODSAuthenticationProvider$IRODSAdminGrantedAuthority@1c135d62
metalnx             | 2021-02-24 14:27:38 INFO  MetadataServiceImpl:65 - findByMetadata()
metalnx             | 2021-02-24 14:27:38 INFO  MetadataServiceImpl:75 - searchList:[DataGridMetadataSearch [attribute=x, operator=ILIKE, value=y, unit=, regex=([^A-Za-z0-9-_.,:=!/ ]+), attrColName=m.meta_attr_name, valueColName=m.meta_attr_value, unitColName=m.meta_attr_unit]]
metalnx             | 2021-02-24 14:27:38 INFO  MetadataServiceImpl:76 - pageContext:DataGridPageContext [startItemNumber=0, endItemNumber=0, totalNumberOfItems=0]
metalnx             | 2021-02-24 14:27:38 INFO  MetadataServiceImpl:77 - start:1
metalnx             | 2021-02-24 14:27:38 INFO  MetadataServiceImpl:78 - length:2147483647
metalnx             | 2021-02-24 14:27:38 INFO  MetadataServiceImpl:80 - endIndex:2147483647
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:256 - addSpecificQuery()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:270 - executing specific query PI
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:188 - Specific query: WITH searchMetadata AS ( SELECT obj_name, parent_path, obj_owner, create_ts, modify_ts, resc_name, totalMatches FROM ( SELECT c.coll_name as obj_name,      c.parent_coll_name as parent_path,      c.coll_owner_name as obj_owner,      c.create_ts as create_ts,      c.modify_ts as modify_ts,      '' as resc_name,      c.coll_inheritance,      COUNT(c.coll_name) as totalMatches FROM       r_coll_main c  JOIN (  SELECT map.object_id AS map_object_id  FROM r_objt_metamap map  JOIN (      SELECT m.meta_id, m.meta_attr_name, m.meta_attr_value     FROM r_meta_main m  WHERE   LOWER( m.meta_attr_name ) = LOWER( 'x' )  AND  LOWER( m.meta_attr_value ) ILIKE LOWER(  '%y%'  )   )  AS metadata ON (metadata.meta_id = map.meta_id)  GROUP BY map.object_id  HAVING COUNT(map.meta_id) > 0  ) AS coll_metadata ON (c.coll_id = map_object_id)  GROUP BY       c.coll_name,      c.parent_coll_name,      c.coll_owner_name,      c.create_ts,      c.modify_ts,      resc_name,      c.coll_inheritance ORDER BY totalMatches DESC, c.coll_name  ) AS ms ) SELECT COUNT(*) FROM searchMetadata 
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:145 - alias:metalnxUserQuery_1614176858258
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:38 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:38 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:308 - removeSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:319 - executing specific query PI
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:256 - addSpecificQuery()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:270 - executing specific query PI
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:188 - Specific query: WITH searchMetadata AS ( SELECT obj_name, size, obj_owner, repl_num, create_ts, modify_ts, resc_name, parent_path, totalMatches FROM ( SELECT       d.data_name as obj_name,       d.data_size as size,        d.data_owner_name as obj_owner,       d.data_repl_num as repl_num,       d.create_ts as create_ts,      d.modify_ts as modify_ts,       d.resc_name as resc_name,       c.coll_name as parent_path,      COUNT(d.data_name) as totalMatches FROM r_data_main d  JOIN r_coll_main c ON (d.coll_id = c.coll_id)  JOIN (  SELECT map.object_id AS map_object_id  FROM r_objt_metamap map  JOIN (      SELECT m.meta_id, m.meta_attr_name, m.meta_attr_value     FROM r_meta_main m  WHERE   LOWER( m.meta_attr_name ) = LOWER( 'x' )  AND  LOWER( m.meta_attr_value ) ILIKE LOWER(  '%y%'  )   )  AS metadata ON (metadata.meta_id = map.meta_id)  GROUP BY map.object_id  HAVING COUNT(map.meta_id) > 0  ) AS data_obj_metadata ON (d.data_id = map_object_id)  GROUP BY       d.data_name,      d.data_size,      d.data_owner_name,      d.data_repl_num,      d.create_ts,      d.modify_ts,      d.resc_name,       c.coll_name ORDER BY totalMatches DESC, d.data_name  ) AS ms ) SELECT COUNT(*) FROM searchMetadata 
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:145 - alias:metalnxUserQuery_1614176858409
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:38 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:38 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:308 - removeSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:319 - executing specific query PI
metalnx             | 2021-02-24 14:27:38 INFO  MetadataServiceImpl:102 - totalCollections:0
metalnx             | 2021-02-24 14:27:38 INFO  MetadataServiceImpl:103 - totalDataObjects:2
metalnx             | 2021-02-24 14:27:38 INFO  MetadataServiceImpl:128 - looking for data objects, second branch...
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:85 - searchByMetadata()
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:91 - offset:1
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:92 - limit:2147483647
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:102 - metadataSearch:[DataGridMetadataSearch [attribute=x, operator=ILIKE, value=y, unit=, regex=([^A-Za-z0-9-_.,:=!/ ]+), attrColName=m.meta_attr_name, valueColName=m.meta_attr_value, unitColName=m.meta_attr_unit]]
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:103 - zone:tempZone
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:104 - searchAgainstColls:false
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:105 - pageContext:DataGridPageContext [startItemNumber=1, endItemNumber=0, totalNumberOfItems=2]
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:256 - addSpecificQuery()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:270 - executing specific query PI
metalnx             | 2021-02-24 14:27:38 INFO  SpecQueryServiceImpl:130 - Specific query:  SELECT obj_name, size, obj_owner, repl_num, create_ts, modify_ts, resc_name, parent_path, totalMatches FROM ( SELECT       d.data_name as obj_name,       d.data_size as size,        d.data_owner_name as obj_owner,       d.data_repl_num as repl_num,       d.create_ts as create_ts,      d.modify_ts as modify_ts,       d.resc_name as resc_name,       c.coll_name as parent_path,      COUNT(d.data_name) as totalMatches FROM r_data_main d  JOIN r_coll_main c ON (d.coll_id = c.coll_id)  JOIN (  SELECT map.object_id AS map_object_id  FROM r_objt_metamap map  JOIN (      SELECT m.meta_id, m.meta_attr_name, m.meta_attr_value     FROM r_meta_main m  WHERE   LOWER( m.meta_attr_name ) = LOWER( 'x' )  AND  LOWER( m.meta_attr_value ) ILIKE LOWER(  '%y%'  )   )  AS metadata ON (metadata.meta_id = map.meta_id)  GROUP BY map.object_id  HAVING COUNT(map.meta_id) > 0  ) AS data_obj_metadata ON (d.data_id = map_object_id)  GROUP BY       d.data_name,      d.data_size,      d.data_owner_name,      d.data_repl_num,      d.create_ts,      d.modify_ts,      d.resc_name,       c.coll_name ORDER BY totalMatches DESC, d.data_name  ) AS ms  LIMIT 2147483647 OFFSET 1
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:430 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:133 - findSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:145 - alias:metalnxUserQuery_1614176858464
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:146 - zoneHint:tempZone
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:372 - executeSpecificQueryUsingAlias()
metalnx             | 2021-02-24 14:27:38 INFO  QueryResultProcessingUtils:57 - rows returned from iRODS query: 1
metalnx             | 2021-02-24 14:27:38 INFO  SpecificQueryAOImpl:591 - closeResultSet()
metalnx             | 2021-02-24 14:27:45 ERROR AbstractConnection:644 - read length is set to zero
metalnx             | 2021-02-24 14:27:45 ERROR IRODSMidLevelProtocol:1391 - io exception
metalnx             | java.io.IOException: read length is set to zero
metalnx             |   at org.irods.jargon.core.connection.AbstractConnection.read(AbstractConnection.java:645)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readHeader(IRODSMidLevelProtocol.java:1389)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readMessage(IRODSMidLevelProtocol.java:1029)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readMessage(IRODSMidLevelProtocol.java:1014)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:427)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:553)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:909)
metalnx             |   at org.irods.jargon.core.pub.SpecificQueryAOImpl.queryOnAliasGivenDefinition(SpecificQueryAOImpl.java:483)
metalnx             |   at org.irods.jargon.core.pub.SpecificQueryAOImpl.executeSpecificQueryUsingAlias(SpecificQueryAOImpl.java:451)
metalnx             |   at com.emc.metalnx.services.irods.SpecQueryServiceImpl.searchByMetadata(SpecQueryServiceImpl.java:132)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx             |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx             |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx             |   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
metalnx             |   at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
metalnx             |   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
metalnx             |   at com.sun.proxy.$Proxy47.searchByMetadata(Unknown Source)
metalnx             |   at com.emc.metalnx.services.irods.MetadataServiceImpl.findByMetadata(MetadataServiceImpl.java:130)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx             |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx             |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx             |   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
metalnx             |   at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
metalnx             |   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
metalnx             |   at com.sun.proxy.$Proxy54.findByMetadata(Unknown Source)
metalnx             |   at com.emc.metalnx.controller.MetadataController.exportSearchResultsToCSVFile(MetadataController.java:227)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx             |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx             |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx             |   at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
metalnx             |   at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
metalnx             |   at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
metalnx             |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
metalnx             |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
metalnx             |   at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
metalnx             |   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
metalnx             |   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
metalnx             |   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
metalnx             |   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
metalnx             |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
metalnx             |   at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
metalnx             |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
metalnx             |   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
metalnx             |   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
metalnx             |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
metalnx             |   at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
metalnx             |   at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
metalnx             |   at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
metalnx             |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
metalnx             |   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
metalnx             |   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:667)
metalnx             |   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
metalnx             |   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
metalnx             |   at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
metalnx             |   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
metalnx             |   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
metalnx             |   at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
metalnx             |   at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
metalnx             |   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
metalnx             |   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
metalnx             |   at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
metalnx             |   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
metalnx             |   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
metalnx             |   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
metalnx             |   at java.base/java.lang.Thread.run(Thread.java:834)
metalnx             | 2021-02-24 14:27:45 WARN  IRODSSession:604 - discarding irods session for: irods://rods@irods-catalog-provider:1247
metalnx             | 2021-02-24 14:27:45 WARN  IRODSProtocolManager:155 - connection returned with IOException, will forcefully close and remove from session cache
metalnx             | 2021-02-24 14:27:45 WARN  IRODSMidLevelProtocol:1507 - obliterateConnectionAndDiscardErrors() will forcefully close the connection
metalnx             | 2021-02-24 14:27:45 ERROR SpecQueryServiceImpl:134 - Could not get specific query: 
metalnx             | org.irods.jargon.core.exception.JargonException: java.io.IOException: read length is set to zero
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readHeader(IRODSMidLevelProtocol.java:1393)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readMessage(IRODSMidLevelProtocol.java:1029)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readMessage(IRODSMidLevelProtocol.java:1014)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:427)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:553)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:909)
metalnx             |   at org.irods.jargon.core.pub.SpecificQueryAOImpl.queryOnAliasGivenDefinition(SpecificQueryAOImpl.java:483)
metalnx             |   at org.irods.jargon.core.pub.SpecificQueryAOImpl.executeSpecificQueryUsingAlias(SpecificQueryAOImpl.java:451)
metalnx             |   at com.emc.metalnx.services.irods.SpecQueryServiceImpl.searchByMetadata(SpecQueryServiceImpl.java:132)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx             |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx             |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx             |   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
metalnx             |   at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
metalnx             |   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
metalnx             |   at com.sun.proxy.$Proxy47.searchByMetadata(Unknown Source)
metalnx             |   at com.emc.metalnx.services.irods.MetadataServiceImpl.findByMetadata(MetadataServiceImpl.java:130)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx             |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx             |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx             |   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
metalnx             |   at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
metalnx             |   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
metalnx             |   at com.sun.proxy.$Proxy54.findByMetadata(Unknown Source)
metalnx             |   at com.emc.metalnx.controller.MetadataController.exportSearchResultsToCSVFile(MetadataController.java:227)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx             |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx             |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx             |   at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
metalnx             |   at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
metalnx             |   at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
metalnx             |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
metalnx             |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
metalnx             |   at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
metalnx             |   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
metalnx             |   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
metalnx             |   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
metalnx             |   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
metalnx             |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
metalnx             |   at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
metalnx             |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
metalnx             |   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
metalnx             |   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
metalnx             |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
metalnx             |   at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
metalnx             |   at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
metalnx             |   at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
metalnx             |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
metalnx             |   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
metalnx             |   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:667)
metalnx             |   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
metalnx             |   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
metalnx             |   at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
metalnx             |   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
metalnx             |   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
metalnx             |   at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
metalnx             |   at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
metalnx             |   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
metalnx             |   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
metalnx             |   at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
metalnx             |   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
metalnx             |   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
metalnx             |   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
metalnx             |   at java.base/java.lang.Thread.run(Thread.java:834)
metalnx             | Caused by: java.io.IOException: read length is set to zero
metalnx             |   at org.irods.jargon.core.connection.AbstractConnection.read(AbstractConnection.java:645)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readHeader(IRODSMidLevelProtocol.java:1389)
metalnx             |   ... 110 more
metalnx             | 2021-02-24 14:27:46 INFO  SpecificQueryAOImpl:308 - removeSpecificQueryByAlias()
metalnx             | 2021-02-24 14:27:46 INFO  SpecificQueryAOImpl:319 - executing specific query PI
metalnx             | 2021-02-24 14:27:46 ERROR MetadataServiceImpl:142 - Could not find data objects by metadata.
metalnx             | org.irods.jargon.core.exception.JargonException: java.io.IOException: read length is set to zero
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readHeader(IRODSMidLevelProtocol.java:1393)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readMessage(IRODSMidLevelProtocol.java:1029)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readMessage(IRODSMidLevelProtocol.java:1014)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:427)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:553)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:909)
metalnx             |   at org.irods.jargon.core.pub.SpecificQueryAOImpl.queryOnAliasGivenDefinition(SpecificQueryAOImpl.java:483)
metalnx             |   at org.irods.jargon.core.pub.SpecificQueryAOImpl.executeSpecificQueryUsingAlias(SpecificQueryAOImpl.java:451)
metalnx             |   at com.emc.metalnx.services.irods.SpecQueryServiceImpl.searchByMetadata(SpecQueryServiceImpl.java:132)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx             |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx             |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx             |   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
metalnx             |   at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
metalnx             |   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
metalnx             |   at com.sun.proxy.$Proxy47.searchByMetadata(Unknown Source)
metalnx             |   at com.emc.metalnx.services.irods.MetadataServiceImpl.findByMetadata(MetadataServiceImpl.java:130)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx             |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx             |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx             |   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
metalnx             |   at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
metalnx             |   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
metalnx             |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
metalnx             |   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
metalnx             |   at com.sun.proxy.$Proxy54.findByMetadata(Unknown Source)
metalnx             |   at com.emc.metalnx.controller.MetadataController.exportSearchResultsToCSVFile(MetadataController.java:227)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
metalnx             |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
metalnx             |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
metalnx             |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
metalnx             |   at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
metalnx             |   at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
metalnx             |   at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
metalnx             |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
metalnx             |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
metalnx             |   at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
metalnx             |   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
metalnx             |   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
metalnx             |   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
metalnx             |   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
metalnx             |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
metalnx             |   at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
metalnx             |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
metalnx             |   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
metalnx             |   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
metalnx             |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
metalnx             |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
metalnx             |   at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
metalnx             |   at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
metalnx             |   at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
metalnx             |   at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
metalnx             |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
metalnx             |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
metalnx             |   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
metalnx             |   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
metalnx             |   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:667)
metalnx             |   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
metalnx             |   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
metalnx             |   at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
metalnx             |   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
metalnx             |   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
metalnx             |   at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
metalnx             |   at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
metalnx             |   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
metalnx             |   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
metalnx             |   at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
metalnx             |   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
metalnx             |   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
metalnx             |   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
metalnx             |   at java.base/java.lang.Thread.run(Thread.java:834)
metalnx             | Caused by: java.io.IOException: read length is set to zero
metalnx             |   at org.irods.jargon.core.connection.AbstractConnection.read(AbstractConnection.java:645)
metalnx             |   at org.irods.jargon.core.connection.IRODSMidLevelProtocol.readHeader(IRODSMidLevelProtocol.java:1389)
metalnx             |   ... 110 more
michael-conway commented 3 years ago

I'm adding a unit test for metadata service that replicates Terrell's procedure and will push that next so we can all run this, it'll work with the standard users/resources in the jargon test framework, so we can take this out of the web app for further testing. Look for that push next.

michael-conway commented 3 years ago

doesn't fail - https://github.com/DICE-UNC/jargon-irods-ext/blob/8ec6d2047ce2e200ccc9be6d522986bf1f1096bf/emc-metalnx-services/src/test/java/com/emc/metalnx/services/irods/MetadataServiceImplTest.java#L122

fails (only change is the max value) - https://github.com/DICE-UNC/jargon-irods-ext/blob/8ec6d2047ce2e200ccc9be6d522986bf1f1096bf/emc-metalnx-services/src/test/java/com/emc/metalnx/services/irods/MetadataServiceImplTest.java#L183

trel commented 3 years ago

and the max value that fails is ... smaller?

michael-conway commented 3 years ago

I pushed a change that sets that max to 5000 for testing, see if this addresses. We can make this fancier but want to get this fixed first. I also fixed the CSV format emitted as it was inexplicably delimited with semcolons. I do get the results given the test case and it warrants further in-place testing.

The codebase is in the middle of a push here to support pluggable publishing actions from the file shopping cart at NIEHS, so that got into the codestream :-|

This is a cool new capability but may get mad if your metalnx.properties file does not have this at the end...All of these new features are made as plugins that can be turned off by default...If you get an error about missing property values it is this thing.

It's in the included metalnx.properties file in the docker-test-framework subdir of the repo.


#############################
# Pluggable shopping cart and export plugin configuration. 
# Turn on and off pluggable shopping cart globally, and configure export endpoints.
# N.B. plugins also requires provisioning of the jwt.* information above
#############################

# enable pluggable export globally and show the export GUI components
pluggableshoppingcart.enabled=false

# configured endpoints, comma delimited in form https://host.com/v1
pluggablepublishing.endpointRegistryList=
# timeout for info/attribute gathering, set to 0 for no timeout
pluggablepublishing.info.timeout=0

# timeout for actual publishing, set to 0 for no timeout
pluggablepublishing.publishing.timeout=0