---------------------------------------------------------------------------
ServiceXException Traceback (most recent call last)
Input In [2], in <cell line: 4>()
2 sx_dataset = sx.ServiceXDataset(dataset_name, "uproot",result_destination="volume")
3 ds = ServiceXSourceUpROOT(sx_dataset, "events")
----> 4 missing_ET = ds.Select(lambda event: event.met_pt).AsAwkwardArray().value()
File /opt/conda/lib/python3.8/site-packages/make_it_sync/func_wrapper.py:63, in make_sync.<locals>.wrapped_call(*args, **kwargs)
61 @wraps(fn)
62 def wrapped_call(*args, **kwargs):
---> 63 return _sync_version_of_function(fn, *args, **kwargs)
File /opt/conda/lib/python3.8/site-packages/make_it_sync/func_wrapper.py:26, in _sync_version_of_function(fn, *args, **kwargs)
23 exector = ThreadPoolExecutor(max_workers=1)
24 future = exector.submit(get_data_wrapper, *args, **kwargs)
---> 26 return future.result()
File /opt/conda/lib/python3.8/concurrent/futures/_base.py:444, in Future.result(self, timeout)
442 raise CancelledError()
443 elif self._state == FINISHED:
--> 444 return self.__get_result()
445 else:
446 raise TimeoutError()
File /opt/conda/lib/python3.8/concurrent/futures/_base.py:389, in Future.__get_result(self)
387 if self._exception:
388 try:
--> 389 raise self._exception
390 finally:
391 # Break a reference cycle with the exception in self._exception
392 self = None
File /opt/conda/lib/python3.8/concurrent/futures/thread.py:57, in _WorkItem.run(self)
54 return
56 try:
---> 57 result = self.fn(*self.args, **self.kwargs)
58 except BaseException as exc:
59 self.future.set_exception(exc)
File /opt/conda/lib/python3.8/site-packages/make_it_sync/func_wrapper.py:21, in _sync_version_of_function.<locals>.get_data_wrapper(*args, **kwargs)
19 asyncio.set_event_loop(loop)
20 assert not loop.is_running()
---> 21 return loop.run_until_complete(fn(*args, **kwargs))
File /opt/conda/lib/python3.8/asyncio/base_events.py:616, in BaseEventLoop.run_until_complete(self, future)
613 if not future.done():
614 raise RuntimeError('Event loop stopped before Future completed.')
--> 616 return future.result()
File /opt/conda/lib/python3.8/site-packages/func_adl/object_stream.py:395, in ObjectStream.value_async(self, executor, title)
392 # Run it
393 from func_adl.ast.meta_data import remove_empty_metadata
--> 395 return await exe(remove_empty_metadata(self._q_ast), title)
File /opt/conda/lib/python3.8/site-packages/func_adl_servicex/ServiceX.py:180, in ServiceXDatasetSourceBase.execute_result_async(self, a, title)
178 # Run the query for real!
179 attr = getattr(self._ds, name)
--> 180 result = await attr(q_str, title=title)
182 # If this is a single column awkward query, and the user did not specify a column name, then
183 # we will return the first column.
184 if 'awkward' in name and (not has_col_names(a)) and 'key="col1"' in str(result.layout):
File /opt/conda/lib/python3.8/site-packages/servicex/servicex_utils.py:51, in _wrap_in_memory_sx_cache.<locals>.cached_version_of_fn(*args, **kwargs)
49 try:
50 logger.debug(f"{h} - processing request")
---> 51 result = await fn(*args, **kwargs)
52 sx._cache.set_inmem(h, result)
53 finally:
File /opt/conda/lib/python3.8/site-packages/servicex/servicex.py:400, in ServiceXDataset.get_data_awkward_async(self, selection_query, title)
394 @functools.wraps(ServiceXABC.get_data_awkward_async, updated=())
395 @_wrap_in_memory_sx_cache
396 async def get_data_awkward_async(
397 self, selection_query: str, title: Optional[str] = None
398 ):
399 return self._converter.combine_awkward(
--> 400 await self._data_return(
401 selection_query, lambda f: self._converter.convert_to_awkward(f), title
402 )
403 )
File /opt/conda/lib/python3.8/site-packages/backoff/_async.py:133, in retry_exception.<locals>.retry(*args, **kwargs)
130 details = (target, args, kwargs, tries, elapsed)
132 try:
--> 133 ret = await target(*args, **kwargs)
134 except exception as e:
135 giveup_result = await giveup(e)
File /opt/conda/lib/python3.8/site-packages/backoff/_async.py:133, in retry_exception.<locals>.retry(*args, **kwargs)
130 details = (target, args, kwargs, tries, elapsed)
132 try:
--> 133 ret = await target(*args, **kwargs)
134 except exception as e:
135 giveup_result = await giveup(e)
File /opt/conda/lib/python3.8/site-packages/servicex/servicex.py:621, in ServiceXDataset._data_return(self, selection_query, converter, title, data_format)
587 @on_exception(backoff.constant, ServiceXUnknownRequestID, interval=0.1, max_tries=3)
588 @on_exception(
589 backoff.constant,
(...)
599 data_format: str = "root-file",
600 ) -> List[Any]:
601 """Given a query, return the data, in a unique order, that hold
602 the data for the query.
603
(...)
619 on the converter call.
620 """
--> 621 all_data = {
622 f.file: f.data
623 async for f in self._stream_return(
624 selection_query, title, converter, data_format
625 )
626 }
628 # Finally, we need them in the proper order so we append them
629 # all together
630 ordered_data = [all_data[k] for k in sorted(all_data.keys())]
File /opt/conda/lib/python3.8/site-packages/servicex/servicex.py:621, in <dictcomp>(.0)
587 @on_exception(backoff.constant, ServiceXUnknownRequestID, interval=0.1, max_tries=3)
588 @on_exception(
589 backoff.constant,
(...)
599 data_format: str = "root-file",
600 ) -> List[Any]:
601 """Given a query, return the data, in a unique order, that hold
602 the data for the query.
603
(...)
619 on the converter call.
620 """
--> 621 all_data = {
622 f.file: f.data
623 async for f in self._stream_return(
624 selection_query, title, converter, data_format
625 )
626 }
628 # Finally, we need them in the proper order so we append them
629 # all together
630 ordered_data = [all_data[k] for k in sorted(all_data.keys())]
File /opt/conda/lib/python3.8/site-packages/servicex/servicex.py:664, in ServiceXDataset._stream_return(self, selection_query, title, converter, data_format)
641 """Given a query, return the data, in the order it arrives back
642 converted as appropriate.
643
(...)
657 on the converter call.
658 """
659 as_data = (
660 StreamInfoData(f.file, await asyncio.ensure_future(converter(f.path)))
661 async for f in self._stream_local_files(selection_query, title, data_format)
662 ) # type: ignore
--> 664 async for r in as_data:
665 yield r
File /opt/conda/lib/python3.8/site-packages/servicex/servicex.py:659, in <genexpr>(.0)
634 async def _stream_return(
635 self,
636 selection_query: str,
(...)
639 data_format: str = "root-file",
640 ) -> AsyncIterator[StreamInfoData]:
641 """Given a query, return the data, in the order it arrives back
642 converted as appropriate.
643
(...)
657 on the converter call.
658 """
--> 659 as_data = (
660 StreamInfoData(f.file, await asyncio.ensure_future(converter(f.path)))
661 async for f in self._stream_local_files(selection_query, title, data_format)
662 ) # type: ignore
664 async for r in as_data:
665 yield r
File /opt/conda/lib/python3.8/site-packages/servicex/servicex.py:699, in ServiceXDataset._stream_local_files(self, selection_query, title, data_format)
691 # Get all the files
692 as_files = (
693 f
694 async for f in self._get_files(
695 selection_query, data_format, notifier, title
696 )
697 ) # type: ignore
--> 699 async for name, a_path in as_files:
700 yield StreamInfoPath(name, Path(await a_path))
File /opt/conda/lib/python3.8/site-packages/servicex/servicex.py:692, in <genexpr>(.0)
689 notifier = self._create_notifier(title, True)
691 # Get all the files
--> 692 as_files = (
693 f
694 async for f in self._get_files(
695 selection_query, data_format, notifier, title
696 )
697 ) # type: ignore
699 async for name, a_path in as_files:
700 yield StreamInfoPath(name, Path(await a_path))
File /opt/conda/lib/python3.8/site-packages/servicex/servicex.py:746, in ServiceXDataset._get_files(self, selection_query, data_type, notifier, title)
743 await self._update_query_status(client, request_id)
745 # Get the minio adaptor we are going to use for downloading.
--> 746 minio_adaptor = self._minio_adaptor.from_best(
747 self._cache.lookup_query_status(request_id)
748 )
750 # Look up the cache, and then fetch an iterator going thorugh the results
751 # from either servicex or the cache, depending.
752 try:
File /opt/conda/lib/python3.8/site-packages/servicex/minio_adaptor.py:192, in MinioAdaptorFactory.from_best(self, transaction_info)
183 logging.getLogger(__name__).debug(
184 "Using the request-specific minio_adaptor"
185 )
186 return MinioAdaptor(
187 transaction_info["minio-endpoint"],
188 bool(transaction_info["minio-secured"]),
189 transaction_info["minio-access-key"],
190 transaction_info["minio-secret-key"],
191 )
--> 192 raise ServiceXException(
193 "Do not know or have enough information to create a Minio "
194 f"Login info ({transaction_info})"
195 )
ServiceXException: (ServiceXException(...), 'Do not know or have enough information to create a Minio Login info ({\'request_id\': \'c27b2f21-378b-4ceb-93d4-1980a0c9691e\', \'did\': \'File List Provided in Request\', \'columns\': None, \'selection\': "(call Select (call EventDataset \'bogus.root\' \'events\') (lambda (list event) (attr event \'met_pt\')))", \'tree-name\': None, \'image\': \'sslhep/servicex_func_adl_uproot_transformer:20220418-1418-stable\', \'workers\': 20, \'result-destination\': \'volume\', \'result-format\': \'root-file\', \'workflow-name\': \'selection_codegen\', \'generated-code-cm\': \'c27b2f21-378b-4ceb-93d4-1980a0c9691e-generated-source\', \'status\': \'Submitted\', \'failure-info\': None, \'app-version\': \'1.0.0rc3\', \'code-gen-image\': \'sslhep/servicex_code_gen_func_adl_uproot:20220418-1418-stable\'})')