kunwp1 opened a new issue, #5197:
URL: https://github.com/apache/texera/issues/5197

   ### What happened?
   
   A workflow has 1-out python udf and python udf operator. 1-out python udf 
operator produces 0 tuples. In this case, the downstream python udf operator 
doesn't complete the execution.
   
   ### How to reproduce?
   
   Run this workflow.
   
   [Untitled workflow 
(13).json](https://github.com/user-attachments/files/28201368/Untitled.workflow.13.json)
   
   <img width="1129" height="605" alt="Image" 
src="https://github.com/user-attachments/assets/f229540f-6a83-4a1c-974d-4861b687a67c";
 />
   
   ### Branch
   
   main
   
   ### Commit Hash (Optional)
   
   _No response_
   
   ### What browsers are you seeing the problem on?
   
   _No response_
   
   ### Relevant log output
   
   ```shell
   2026-05-24 16:40:36.928 | ERROR    | threading:run:1012 - An error has been 
caught in function 'run', process 'MainProcess' (38104), thread 
'main_loop_thread' (6156333056):
   Traceback (most recent call last):
   
     File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/threading.py", line 
1032, in _bootstrap
       self._bootstrap_inner()
       │    └ <function Thread._bootstrap_inner at 0x109d77060>
       └ <Thread(main_loop_thread, started 6156333056)>
     File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/threading.py", line 
1075, in _bootstrap_inner
       self.run()
       │    └ <function Thread.run at 0x109d76d40>
       └ <Thread(main_loop_thread, started 6156333056)>
   > File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/threading.py", line 
1012, in run
       self._target(*self._args, **self._kwargs)
       │    │        │    │        │    └ {}
       │    │        │    │        └ <Thread(main_loop_thread, started 
6156333056)>
       │    │        │    └ ()
       │    │        └ <Thread(main_loop_thread, started 6156333056)>
       │    └ <bound method StoppableQueueBlockingRunnable.run of 
<core.runnables.main_loop.MainLoop object at 0x115e50320>>
       └ <Thread(main_loop_thread, started 6156333056)>
   
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/util/stoppable/stoppable_queue_blocking_thread.py",
 line 65, in run
       self.receive(self.interruptible_get())
       │    │       │    └ <function 
StoppableQueueBlockingRunnable.interruptible_get at 0x10fe774c0>
       │    │       └ <core.runnables.main_loop.MainLoop object at 0x115e50320>
       │    └ <function MainLoop.receive at 0x115dcb9c0>
       └ <core.runnables.main_loop.MainLoop object at 0x115e50320>
   
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/runnables/main_loop.py",
 line 148, in receive
       match(
       └ <function match at 0x1100884a0>
   
     File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/site-packages/pampy/pampy.py",
 line 299, in match
       return run(action, lambda_args)
              │   │       └ 
[ECMElement(tag=ChannelIdentity(from_worker_id=ActorVirtualIdentity(name='Worker:WF321-PythonUDFSourceV2-operator-bf7723af-dc...
              │   └ <bound method MainLoop._process_ecm of 
<core.runnables.main_loop.MainLoop object at 0x115e50320>>
              └ <function run at 0x1100734c0>
     File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/site-packages/pampy/pampy.py",
 line 48, in run
       return action(*var)
              │       └ 
[ECMElement(tag=ChannelIdentity(from_worker_id=ActorVirtualIdentity(name='Worker:WF321-PythonUDFSourceV2-operator-bf7723af-dc...
              └ <bound method MainLoop._process_ecm of 
<core.runnables.main_loop.MainLoop object at 0x115e50320>>
   
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/runnables/main_loop.py",
 line 340, in _process_ecm
       {
   
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/runnables/main_loop.py",
 line 291, in _process_end_channel
       self.complete()
       │    └ <function MainLoop.complete at 0x115dca480>
       └ <core.runnables.main_loop.MainLoop object at 0x115e50320>
   
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/runnables/main_loop.py",
 line 100, in complete
       self.context.state_manager.transit_to(WorkerState.COMPLETED)
       │    │       │             │          │           └ WorkerState.COMPLETED
       │    │       │             │          └ <enum 'WorkerState'>
       │    │       │             └ <function StateManager.transit_to at 
0x115da9260>
       │    │       └ <core.architecture.managers.state_manager.StateManager 
object at 0x115d37b90>
       │    └ <core.architecture.managers.context.Context object at 0x115e50380>
       └ <core.runnables.main_loop.MainLoop object at 0x115e50320>
   
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/architecture/managers/state_manager.py",
 line 73, in transit_to
       raise InvalidTransitionException(
             └ <class 
'core.architecture.managers.state_manager.InvalidTransitionException'>
   
   core.architecture.managers.state_manager.InvalidTransitionException: Cannot 
transit from READY to COMPLETED
   Exception in thread main_loop_thread:
   Traceback (most recent call last):
     File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/threading.py", line 
1075, in _bootstrap_inner
       self.run()
     File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/threading.py", line 
1012, in run
       self._target(*self._args, **self._kwargs)
     File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/site-packages/loguru/_logger.py",
 line 1251, in catch_wrapper
       return function(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/util/stoppable/stoppable_queue_blocking_thread.py",
 line 65, in run
       self.receive(self.interruptible_get())
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/runnables/main_loop.py",
 line 148, in receive
       match(
     File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/site-packages/pampy/pampy.py",
 line 299, in match
       return run(action, lambda_args)
              ^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/Users/kunwoopark/.pyenv/versions/3.12.9/lib/python3.12/site-packages/pampy/pampy.py",
 line 48, in run
       return action(*var)
              ^^^^^^^^^^^^
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/runnables/main_loop.py",
 line 340, in _process_ecm
       {
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/runnables/main_loop.py",
 line 291, in _process_end_channel
       self.complete()
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/runnables/main_loop.py",
 line 100, in complete
       self.context.state_manager.transit_to(WorkerState.COMPLETED)
     File 
"/Users/kunwoopark/workspace/fork/texera/amber/src/main/python/core/architecture/managers/state_manager.py",
 line 73, in transit_to
       raise InvalidTransitionException(
   core.architecture.managers.state_manager.InvalidTransitionException: Cannot 
transit from READY to COMPLETED
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to