conductor-python icon indicating copy to clipboard operation
conductor-python copied to clipboard

PicklingError When Running helloworld Script

Open Ivancles opened this issue 1 year ago • 3 comments

Hi everyone 👋,

I'm encountering a problem when trying to run the helloworld script. The error message I receive is a PicklingError related to multiprocessing. It seems that the issue is because I'm trying to pickle a function (book_ride) which can't be pickled since it's not the same object as services.booking_service.booking.book_ride.

I've attached an image of the error message below for reference.

Steps to Reproduce:

Clone the repository. Navigate to the helloworld directory. Run the script using the command python helloworld.py. Error Message: image

PicklingError: Can't pickle <function book_ride at 0x...>: it's not the same object as services.booking_service.booking.book_ride Additional Context:

From my investigation, it appears that the function book_ride is being referenced incorrectly in the context of multiprocessing, leading to the pickling issue.

Environment:

Python version: 3.10.14 Operating system: W10 Any other relevant details: conductor-python==1.1.5

Any help to resolve this issue would be greatly appreciated.

Thank you!

Ivancles avatar May 16 '24 09:05 Ivancles

I encountered the same issue and found a workaround. Here’s what I did:

    workers = [
        HelloWorker(task_definition_name='hello_task')
    ]
    configuration = Configuration()
    with TaskHandler(workers=workers, configuration=configuration) as task_handler:
        task_handler.start_processes()
        task_handler.join_processes()

martin-foka avatar Jun 30 '24 04:06 martin-foka

@maRT-sk for Python novices, can you show the full changes you made to workaround this issue? I believe what you show would be in helloworld.py but HelloWorker isn't defined as a class anywhere, so there are some other changes not shown... ?

jgard avatar Jan 17 '25 21:01 jgard