-
Notifications
You must be signed in to change notification settings - Fork 200
Open
Description
So, I'm using the latest version of Faust with an Aerospike database for persistence. I have followed the instructions in the project's README.md, but I still get this issue with tumbling windows:
Here is my code:
sum_transactions_table = (
app.Table(
'transactions-sum',
default=float,
partitions=config.faust.partitions,
on_window_close=window_processor,
options={'namespace': 'default', 'client': {'hosts': [('127.0.0.1', 3000)]}},
)
.tumbling(
config.faust.window_closing_time,
expires=timedelta(hours=config.faust.window_expires),
key_index=True
)
)This produces the following error output:
[2025-01-30 12:42:00,764] [10813] [ERROR] Error configuring aerospike client 'NoneType' object has no attribute 'get'
[2025-01-30 12:42:00,764] [10813] [ERROR] [^Worker]: Error: AttributeError("'NoneType' object has no attribute 'get'")
Traceback (most recent call last):
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/worker.py", line 277, in execute_from_commandline
self.loop.run_until_complete(self._starting_fut)
File "/Users/pedro/.local/share/uv/python/cpython-3.12.7-macos-aarch64-none/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 830, in start
await self._default_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 837, in _default_start
await self._actually_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 861, in _actually_start
await child.maybe_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 889, in maybe_start
await self.start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 830, in start
await self._default_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 837, in _default_start
await self._actually_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 861, in _actually_start
await child.maybe_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 889, in maybe_start
await self.start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 830, in start
await self._default_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 837, in _default_start
await self._actually_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 854, in _actually_start
await self.on_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/faust/tables/manager.py", line 142, in on_start
await self._update_channels()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/faust/tables/manager.py", line 158, in _update_channels
await table.maybe_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 889, in maybe_start
await self.start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 830, in start
await self._default_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 837, in _default_start
await self._actually_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/mode/services.py", line 854, in _actually_start
await self.on_start()
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/faust/tables/base.py", line 218, in on_start
await self.add_runtime_dependency(self.data)
^^^^^^^^^
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/faust/tables/base.py", line 213, in data
self._data = self._new_store()
^^^^^^^^^^^^^^^^^
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/faust/tables/base.py", line 192, in _new_store
return self._new_store_by_url(self._store or self.app.conf.store)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/faust/tables/base.py", line 195, in _new_store_by_url
return stores.by_url(url)(
^^^^^^^^^^^^^^^^^^^
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/faust/stores/aerospike.py", line 70, in __init__
raise ex
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/faust/stores/aerospike.py", line 63, in __init__
self.client = AeroSpikeStore.get_aerospike_client(options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/pedro/Projects/poc_faust/.venv/lib/python3.12/site-packages/faust/stores/aerospike.py", line 80, in get_aerospike_client
client_config: Dict[Any, Any] = aerospike_config.get(
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'Note that removing the .tumbling() method makes it work. So looks like it is not loading the config from the table.
Metadata
Metadata
Assignees
Labels
No labels